htaccess重定向到https://没有完全正常工作..?

时间:2015-06-29 13:23:36

标签: wordpress apache .htaccess

我正在努力确保我的网站始终在https://www.angelleye.com上运行。所以,https://www.我都阅读了一些基本指南,他们几乎都表明了这一点,这就是我目前正在使用的内容。

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

当我查看我的主页时,它似乎按预期将我重定向到https://,但是,如果我直接加载其他URL,则不会。例如,如果我在浏览器中输入此内容:http://angelleye.com/product-category/paypal-tools/然后它会为我添加www.,但它会将我留在http://而不是将我移至https://

我的htaccess规则是否有问题?任何有关如何使其按预期工作的信息将不胜感激。谢谢!

编辑:我正在使用WordPress和WP Rocket缓存插件,我只是注意到它在我的规则之上添加了一堆规则。也许有冲突.. ??这是一个链接,可以看到整个事情:http://pastebin.com/fJTmbk05

编辑2 :这似乎与我的WordPress配置有关,但我无法弄清楚它会是什么。如果我在WP安装之外尝试URL,它可以正常工作。 (即http://angelleye.com/temp/ball.gif

编辑3 :嗯,现在这个URL在我的WP结构中,但它工作正常(angelleye.com/category/blog/)。所以似乎有些网址确实有用,但很多网址都没有。??

编辑4 :我已完全删除了我的缓存插件,因此我的htaccess文件现在只有我的重定向规则。在WP结构之外仍然可以正常工作,但不在其中。

3 个答案:

答案 0 :(得分:1)

您的.htaccess文件包含三个重写部分。第一个是插件相关的,第二个是与WordPress相关的,第三个是你的添加。

由于你的规则在第三个区块中,因为WordPress规则已经生效,所以它们不会被看到

因此,您需要将添加的规则移至第133行(在第一个mod_rewrite定义之上)。

现在是'命令链'或优先级:

  1. 强制HTTPS和www.
  2. 与WPRocket相关的规则
  3. WordPress'核心'规则

答案 1 :(得分:0)

尝试以下代码,使用参数强制将http重定向到https

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1%{REQUEST_URI} [R=301,QSA,NC,L]

答案 2 :(得分:-1)

您是否在AllowOverride设置了httpd.conf

RewriteEngine On
# This will enable the Rewrite capabilities

RewriteCond %{HTTPS} !=on
# This checks to make sure the connection is not already HTTPS

RewriteRule ^/?secure/(.*) https://%{SERVER_NAME}/secure/$1 [R,L]
# This rule will redirect all users who are using any part of /secure/ to the same location but using HTTPS.

你会用angelleye取代安全。