如何扩展.htaccess规则将/other目录请求重定向至指定页面?
解决方案
方法一:扩展根目录的.htaccess文件
直接在现有规则下方添加新的重定向规则,完整代码如下:
# Remove www from any URLs that have them: RewriteEngine on RewriteCond %{HTTP_HOST} ^www\. RewriteRule ^(.*)$ https://example.com/$1 [R=301,L] # Redirect requests for /other and /other/ to target page RewriteRule ^other(/)?$ https://example.com/other/sub/index.html [R=301,L]
规则说明
^other(/)?$:精准匹配请求路径为/other或/other/的两种情况(/?表示末尾的斜杠为可选)[R=301,L]:R=301代表永久重定向,利于搜索引擎收录;L表示匹配到这条规则后停止执行后续规则- 由于现有规则已完成
www到非www的跳转,这条新规则会自动覆盖www.example.com/other类请求(先转成非www域名再触发重定向)
方法二:在other子目录新建.htaccess文件
如果不想改动根目录配置,可直接在public_html/other/目录下创建新的.htaccess文件,写入以下内容:
RewriteEngine on RewriteRule ^$ https://example.com/other/sub/index.html [R=301,L]
规则说明
- 当访问
/other或/other/时,子目录的.htaccess会优先生效,匹配当前目录的空路径(因原目录无默认索引文件才触发403),直接重定向到目标页面 - 这种方式更独立,不会干扰根目录其他规则的执行
注意事项
- 测试阶段建议先用
R=302临时重定向,避免浏览器缓存错误的重定向规则,确认无误后再改为R=301 - 确保服务器已开启
mod_rewrite模块,否则所有重定向规则无法生效
内容的提问来源于stack exchange,提问作者Attack68
相关产品推荐
相关产品推荐

