将整个/dev/子目录重定向至网站根目录的配置问题
解决/dev/目录全站重定向到主站根目录的问题
看起来你离目标只差一点点!当前的.htaccess规则只是移除了/dev/前缀,但保留了后续路径,所以才会出现“仅移除/dev/路径却保留后续链接内容”的情况。要实现所有/dev/下的内容全部重定向到主站根目录,只需要调整RewriteRule的目标地址即可:
Options +FollowSymLinks RewriteEngine On RewriteRule ^(.*)$ https://myfakewebsite.com/ [R=301,L]
为什么原来的规则达不到预期?
你之前的规则:
RewriteRule ^(.*)$ /$1 [R=301,L]
这里的/$1会把匹配到的(.*)(也就是/dev/后面的所有路径内容)直接拼接到主站的根路径后,举个例子:
- 访问
/dev/about.html会被重定向到/about.html - 访问
/dev/blog/post/123会被重定向到/blog/post/123
这显然不是你想要的“全部跳转到根目录”的效果。
新规则的详细解释
^(.*)$:匹配/dev/目录下的所有请求路径(包括直接访问/dev/本身的空路径)https://myfakewebsite.com/:明确指定重定向的目标是主站的根目录,不管原请求的后续路径是什么R=301:标记为永久重定向,告诉搜索引擎更新索引,把旧的/dev/路径替换为主站根目录L:表示这是最后一条规则,一旦匹配成功就停止处理后续的Rewrite规则
几个实用的小提示
- 先确认服务器已经启用了
mod_rewrite模块,否则这些规则不会生效 - 测试阶段可以先用
R=302(临时重定向),确认重定向效果符合预期后再改成R=301,避免浏览器缓存错误的重定向规则 - 确保目标地址
https://myfakewebsite.com/和你主站的规范域名一致(比如要不要带www),避免出现重复内容的SEO问题
内容的提问来源于stack exchange,提问作者MattM
相关产品推荐
相关产品推荐

