我有一个使用wordpress的网站。它最初是在没有SSL的情况下上载和使用的。在安装服务器证书并为ssl站点添加apache virtualhost文件后,我尝试加载https版本。它加载了大量关于正在修剪不安全内容的警告。由于http协议不安全,许多与wordpress主题相关的css和javascript文件没有加载,因此生成的网页看起来很难看。
我更改了。htaccess访问以下内容:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://drjoel.info/$1 [R,L]
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
然后,我按照codex的指示,将mysql数据库中的“主页”和“站点URL”从http更改为https。当我再次尝试加载时,浏览器一直显示“重定向太多”错误。我在wget中使用verbosity和debug选项进行了检查。这就是我得到的:
---request begin---
GET / HTTP/1.1
User-Agent: Wget/1.19.1 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: drjoel.info
Connection: Keep-Alive
Cookie: __cfduid=d700f224676946c9ea07ab3eb7cf5cb861527424630
---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 302 Found
Date: Sun, 27 May 2018 12:37:11 GMT
Content-Type: text/html; charset=iso-8859-1
Transfer-Encoding: chunked
Connection: keep-alive
Location: https://drjoel.info/
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Server: cloudflare
CF-RAY: 42188807c86caaaa-SIN
---response end---
302 Found
URI content encoding = ‘iso-8859-1’
Location: https://drjoel.info/ [following]
Skipping 204 bytes of body: [<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="https://drjoel.info/">here</a>.</p>
</body></html>
] done.
URI content encoding = None
Converted file name \'index.html\' (UTF-8) -> \'index.html\' (UTF-8)
--2018-05-27 18:07:11-- https://drjoel.info/
Reusing existing connection to drjoel.info:443.
Reusing fd 3.
在wget中止之前,这将重复大约20次。怎么了?在Wordpress上为站点启用SSL的正确技术是什么?
SO网友:Mike
在我看来,使用web服务器的重定向并不是最好的解决方案。
相反,为什么不直接修复数据库的内容呢?(使用https://
而不是http://
处处
您可以使用WordPress插件来实现这一点,例如WP Migrate DB 或命令行工具WP-CLI.
使用插件选项(WP Migrate DB
), 在管理中转到Tools
> Migrate DB
.
使用命令行工具(WP-CLI
), 使用以下命令行:wp search-replace http://oldurl.com https://oldurl.com
应用这两种解决方案之一后,您应该有一个正确的站点https
URL而不是http
.