【发布时间】:2015-04-12 23:19:38
【问题描述】:
我知道这个问题在 SO 上被问了很多次,我找到了我帖子的所有相关答案,但我的情况有点独特,因此我不能使用给定的答案作为我的问题的解决方案。
我有一个网站http://www.example.com,其中有一个名称为:secure。 当用户尝试访问http://www.example.com/secure 时,他应该被重定向到该站点的 HTTPS 版本。 现在是棘手的部分 - 在安全页面上,只有 HTTPS 链接,这是每个 SSL 证书所要求的。特别是有一个指向https://www.example.com 的链接——但是当用户点击它时,他应该被重定向到该站点的HTTP 版本。如前所述 - 主页不安全。
我想我需要两条重写规则:
- 将所有试图访问 http://www.example.com/secure 的人重定向到 HTTPS 协议。
- 将所有尝试访问 https://www.example.com 的人重定向到 HTTP 协议。
根据我在此处找到的另一个问题,这就是我现在在域根目录中的 .htaccess 中拥有的内容。
RewriteEngine On
RewriteBase /
# Turn SSL on for /secure
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/secure
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
# Turn SSL off everything but /secure
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/secure
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
这适用于将安全页面重定向到 HTTPS,但我不明白为什么它没有将 https://www.example.com 重定向到 HTTP。
另外值得一提的是,我在同一个 .htaccess 中有以下代码,我无法删除。
# 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
【问题讨论】:
标签: wordpress .htaccess http redirect ssl