如何为.htaccess重写规则添加HTTPS例外(指定子目录)
解决全站HTTPS跳转但/forum目录例外的Apache配置问题
很简单,你只需要在现有重写规则里添加一条排除条件,让服务器识别到/forum开头的请求时,跳过HTTPS跳转。修改后的配置如下:
## Redirect URLs to https:// except /forum <IfModule mod_rewrite.c> RewriteEngine On # 排除/forum开头的所有请求(包括/forum本身和子页面) RewriteCond %{SERVER_PORT} 80 RewriteCond %{REQUEST_URI} !^/forum(/.*)?$ RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] </IfModule>
关键规则解释:
RewriteCond %{REQUEST_URI} !^/forum(/.*)?$:这行是核心,!表示“否定匹配”,意思是当请求路径不是以/forum开头(包括/forum和/forum/xxx这类子页面)时,才执行后续的跳转规则。- 两条
RewriteCond是逻辑与的关系,只有同时满足“80端口”且“不是/forum路径”时,才会触发HTTPS跳转。
如果你的/forum目录有单独的.htaccess文件,记得检查里面有没有冲突的重写规则,确保它没有强制跳转HTTPS。
内容的提问来源于stack exchange,提问作者rw-intechra
相关产品推荐
相关产品推荐

