WordPress在切换后继续将没有http的子页重定向到HTTPS主页

时间:2018-11-02 作者:matthijshofstede

我刚刚将WordPress站点更新为完整的SSL证书。一切正常。只有一个问题我无法解决。

更新后,我注意到主页正在按预期重定向,但子页面也都重定向到主页。

  • http://www.example.com 正在重定向到https://www.example.com
  • http://example.com 正在重定向到https://www.example.com
  • http://www.example.com/page 正在重定向到https://www.example.com (我希望这样https://www.example.com/page)
我正在使用.htaccess 文件以使其工作。我想我错过了什么。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\\.
RewriteRule ^ https://www.example.com%{REQUEST_URI} [NE,L,R]
</IfModule>

1 个回复
SO网友:MrWhite

您将HTTP到HTTPS(和规范的www)重定向放在了错误的位置。它应该在WordPress前端控制器之前。事实上,它应该在# BEGIN WordPress 以避免在将来的更新中被WordPress覆盖。

老实说,我有点惊讶重定向实际上可以做任何事情(除了对静态资源的请求)?(可能您正在看到缓存重定向,或者WP本身稍后正在重定向到主页?)

例如:

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\\.
RewriteRule ^ https://www.example.com%{REQUEST_URI} [NE,L,R]

# 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>
# END WordPress
该重定向最终应为301(永久)重定向。所以改变RR=301 一旦你确认它工作正常。

结束

相关推荐

Redirect undesirable domain

我有一个wordpress网站,我想运行两个不同域的主机。站点位于域example1的第一个主机中。com工作正常,但在第二个主机域示例2中。com重定向到示例1。com域。中没有设置重定向。htaccess文件。两个域中每个域的DNS都已正确设置。我的问题是我应该如何获得它这是重定向程序代码的哪一部分?