【问题标题】:Redirect specific folder to HTTPS and Wordpress将特定文件夹重定向到 HTTPS 和 Wordpress
【发布时间】: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 版本。如前所述 - 主页不安全。

我想我需要两条重写规则:

  1. 将所有试图访问 http://www.example.com/secure 的人重定向到 HTTPS 协议。
  2. 将所有尝试访问 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


    【解决方案1】:

    尝试基于THE_REQUEST 变量而不是REQUEST_URI 的规则。 THE_REQUEST 变量表示 Apache 从您的浏览器收到的原始请求,在执行某些重写规则后它不会被覆盖,这与 REQUEST_URI 变量不同。

    RewriteEngine On
    RewriteBase /
    
    # Turn SSL on for /secure
    RewriteCond %{HTTPS} off
    RewriteCond %{THE_REQUEST} /secure [NC]
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
    
    # Turn SSL off everything but /secure
    RewriteCond %{HTTPS} on
    RewriteCond %{THE_REQUEST} !/secure [NC]
    RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
    

    清除浏览器缓存后最好在新浏览器中进行测试。

    【讨论】:

    • 这似乎适用于安全页面上从 HTTP 到 HTTPS 的重定向,但是在您尝试使用 HTTPS 进入的每个其他页面上,HTTPS 仍然存在。您可以在 @987654321 上查看实时示例@ 并且安全页面是meretz.org.il/donations
    • 你有其他规则也是唯一的代码吗? donations 也有 .htaccess 文件吗?
    • 捐赠文件夹暂时不包含任何文件。我使用 .htaccess 中已有的代码编辑了我的问题,它会干扰您提供的代码吗?
    • 不要忘记在规则中将secure 更改为donations。你应该提到WP的存在。我不是 WP 专家,但我认为您还需要在永久链接中更改站点和主页 URL。确保 WP 规则低于这 2 条规则。我需要赶一些工作,过几个小时会检查这个帖子。
    • 是的,我将安全更改为捐赠。你是对的,我会提到它是wordpress,我会试试你说的。谢谢你的朋友。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 2011-10-06
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    相关资源
    最近更新 更多