如何在.htaccess中配置特定目录HTML页面的单独重定向规则
解决方法
Apache的mod_rewrite规则按从上到下的顺序执行,命中带有[L]标记的规则后会停止后续匹配,你需要将更精确的指定目录重定向规则放在原有通用规则之前即可触发。
修改后的完整配置如下:
Options +FollowSymLinks RewriteEngine On # 指定目录单页重定向规则,放在最前面 RewriteRule ^somefolder/somepage\.html$ post.php [QSA,L] # 若需匹配somefolder下所有.html文件,可替换为下面这条规则 # RewriteRule ^somefolder/.*\.html$ post.php [QSA,L] # 原有通用规则保持不变,放在后面 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.*)\.html$ page.php [QSA,L]
注意事项
- .htaccess中RewriteRule匹配的是相对于配置文件所在目录的相对路径,规则路径不要带开头的斜杠
- 规则修改后如果未即时生效,可清理浏览器缓存或重启Apache服务后重试
内容的提问来源于stack exchange,提问作者Noob Coder
相关产品推荐
相关产品推荐

