【问题标题】:How to force HTTP to HTTPS with an exception?如何强制 HTTP 到 HTTPS 有异常?
【发布时间】:2016-07-10 20:08:47
【问题描述】:

所以我不得不强制所有通过 HTTP 的连接转到特定文件夹上的 HTTPS(例如“public_html/folder1”)。我在某处找到了一个教程,并在 .htaccess 文件中使用了以下内容:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} folder 
RewriteRule ^(.*)$ https://www.yourdomain.com/folder/$1 [R,L]

问题是,我在该文件夹 1 中有一个文件夹,应该允许通过 HTTP 而不仅仅是 HTTPS 访问该文件夹,我该如何例外? (意思是,我希望允许通过 HTTP 访问例如 folder1/subfolder1)。

谢谢

【问题讨论】:

  • 我能问你为什么不强制 https 吗?它更安全,允许您在域上激活 HSTS,这是防止中间人攻击的唯一保护措施。

标签: linux .htaccess redirect ssl https


【解决方案1】:

试试这个:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} ^/folder/((?!subfolder).*)$ 

RewriteRule ^(.*)$ https://www.yourdomain.com/folder/$1 [R,L]

模式^/folder/((?!subfolde).*)匹配请求uri字符串/folder/.*,当字符串为/folder/subfolder/.*时不匹配,因此不应用规则。

【讨论】:

  • 谢谢,成功了:)
猜你喜欢
  • 2020-08-09
  • 2019-05-01
  • 2017-08-31
  • 2014-08-15
  • 2016-11-14
  • 2015-02-20
  • 1970-01-01
  • 2018-11-07
  • 2020-05-28
相关资源
最近更新 更多