如何在Direct Admin中重定向全站但排除特定URL?.htaccess配置求助
解决Direct Admin下全站重定向排除特定URL的问题
你的两段规则逻辑本身没问题,但可能是浏览器缓存了301永久重定向,或者规则匹配场景不够全面。可以按以下方式修改.htaccess文件:
正确规则写法(精确匹配特定URL)
RewriteEngine On # 排除指定URL,NC表示不区分大小写,L表示终止后续规则执行 RewriteRule ^filename\.html$ - [NC,L] # 重定向所有其他请求到目标域名,测试阶段用302避免缓存,确认正常后改为301 RewriteRule ^(.*)$ http://www.example.com/$1 [R=302,L]
如果需要排除包含该URL的所有请求(比如带查询参数的filename.html?id=1),可以改用RewriteCond匹配完整请求路径:
RewriteEngine On # 排除所有包含filename.html的请求,不区分大小写 RewriteCond %{REQUEST_URI} !/filename\.html [NC] # 重定向其他请求到目标域名 RewriteRule ^(.*)$ http://www.example.com/$1 [R=302,L]
关键注意事项
- 测试阶段优先用
R=302临时重定向,避免浏览器缓存301规则导致修改不生效;确认规则正常后,再改为R=301永久重定向。 - 测试时清除浏览器缓存或使用隐私窗口,避免旧重定向缓存干扰结果。
- 确保.htaccess文件放在旧域名的根目录下,且Direct Admin已启用Apache的Rewrite模块(一般默认开启)。
内容的提问来源于stack exchange,提问作者Purple Dandelion
相关产品推荐
相关产品推荐

