htaccess 安全重定向

htaccess 安全重定向

目标是每一页(减去一个文件夹)的网站重定向到 https。我发现了以下情况才不是执行此操作。一个文件夹包含一个子域名。我们将其命名为 mahogany.com。

編輯:修改規則

RewriteEngine On
RewriteBase /

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

如果有人在其浏览器中输入site1.mobiwww.site1.mobi,则文档根目录 htaccess 中的上述内容的 apache 将不会重定向。

上面的代码有什么问题?是否需要添加一行代码来排除 mahogany.com?

答案1

的默认逻辑运算符RewriteCond是“和”;HTTP_HOST不能同时是这两个运算符,因此条件永远不会满足。

尝试这个:

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

另外,您提到了目录例外,但我没有看到其中有例外。您可以通过额外添加RewriteCond或更改RewriteRule条件来添加例外:

RewriteRule ^excepted/location/.* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

相关内容