【问题标题】:Redirect to https except one link重定向到 https,除了一个链接
【发布时间】:2016-08-02 14:01:09
【问题描述】:

我使用此代码将所有链接重定向到 httpswww

RewriteCond %{HTTP_HOST} ^myname.com [NC]
RewriteRule ^(.*)$ https://www.myname.com/$1 [L,R=301,NC]

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

但我希望一个链接不重定向到https

例子:

http://myname.com --> https://www.myname.com
http://myname.com/file.php -- > https://www.myanem.com/file.php
http://myname.com/except.php -- > http://www.myanem.com/except.php

在上面的例子中,我希望except.php 重定向到https

【问题讨论】:

  • 请注意,如果您不将所有链接重定向到浏览器的 https,则无法使用 HSTS,这是针对 MitM 和 SSLstrip 的唯一保护。
  • @Mohammad https://myname.com/except.php 怎么样,你希望它保留https 还是重写回http
  • @DusanBajic,我想回到 http

标签: apache .htaccess redirect https


【解决方案1】:

应该这样做:

RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/except\.php$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} ^/except\.php$
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ %{REQUEST_SCHEME}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

【讨论】:

  • 错误未加载页面,并将其重新加载到 https,再次永远重新加载 ro http
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-14
  • 2019-09-15
  • 1970-01-01
  • 2014-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多