当为站点启用SSL时,如何修复过多的重定向?

时间:2018-05-27 作者:Joel G Mathew

我有一个使用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的正确技术是什么?

2 个回复
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.

SO网友:Andrea Somovigo

我同意@Mike避免http重定向并替换文件和DB中的字符串。用于重放字符串(甚至序列化)的另一个有用工具是—无命令行—如下所示:https://interconnectit.com/products/search-and-replace-for-wordpress-databases/

结束

相关推荐

WP_REDIRECTION_404表已增长到7 GB

我工作的公司有一个企业Wordpress网站,它是从另一家公司收购的。我不知道是否有过去的黑客行为,或者只是累积的垃圾邮件之类的,但是wp_redirection_404 表已增长到大约7GB。我试着在表格上搜索伟哥、范思哲、耐克等产品,并得到了每种产品的页面结果。很明显里面都是垃圾。它似乎什么都没做。事实上,当我在本地下载它进行工作时,我甚至没有带那张表,我也没有注意到任何东西。此外,我还执行了一个过程,在该过程中,我必须从生产站点同步下载回临时站点。下载和上传的过程通常需要1.5个小时。相比之下,在另