htaccess重写需要一个例外

时间:2018-04-12 21:57:30

标签: .htaccess mod-rewrite

我在网站上定义单个网址的例外时遇到问题,除了一个子目录外,所有网址都需要https。

我目前有:

## Redirect URLs to https://
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
</IfModule>

但我需要围绕www.example.com/forum定义一个例外,以便它始终http://www.example.com/forum,而不使用https://协议。

我该怎么做?我尝试了各种各样的! RewriteCond上的运算符,但%SERVER_PORT似乎优先。我应该考虑另一个RewriteCond吗?

1 个答案:

答案 0 :(得分:1)

替换最后一行:

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

有了这个:

RewriteRule !^/?forum  https://www.example.com%{REQUEST_URI} [R,L]

如果是,请将[R,L]替换为[R=301,L]以永久重定向

<强>更新

根据您的评论,您要强制https forumhttp {{}}}请求加入RewriteCond %{SERVER_PORT} !80 RewriteRule ^/?forum http://www.example.com%{REQUEST_URI} [R,L] ,您可以添加这些规则以及上述规则:

{{1}}