如何在localhost用.htaccess移除URL目录名?解决路径跳转错误
解决.htaccess URL重写路径丢失问题
嘿,我看你遇到了URL重写时丢失rootdirectory路径的问题——当前规则把URL改成了http://localhost/project-1,而不是你想要的http://localhost/rootdirectory/project-1,问题出在RewriteBase的配置上,调整一下就好:
修改后的.htaccess代码如下:
Options +FollowSymLinks -MultiViews # Turn mod_rewrite on RewriteEngine On RewriteBase /rootdirectory/ RewriteRule ^portfolio/(.*)$ $1 [L,NC,R=301]
关键调整说明:
- 把
RewriteBase /改成RewriteBase /rootdirectory/:这样重写规则会基于rootdirectory这个子目录来处理,而不是整个网站的根目录(localhost/) - 去掉RewriteRule目标路径开头的
/:因为已经指定了RewriteBase,直接写$1就会自动拼接成/rootdirectory/project-1
另外要注意:
- 如果你把.htaccess文件直接放在
rootdirectory文件夹里,其实可以省略RewriteBase这一行,规则一样能生效,但写上它会让配置更清晰,避免环境差异导致的问题 - 测试前记得清空浏览器缓存,因为之前的301永久重定向会被浏览器缓存,可能会影响你看到新规则的效果
内容的提问来源于stack exchange,提问作者Sabir Hala
相关产品推荐
相关产品推荐

