.htaccess htaccess隐藏目录名不';行不通

.htaccess htaccess隐藏目录名不';行不通,.htaccess,apache2,.htaccess,Apache2,我的服务器上有多个站点和域。 我不知道我做错了什么,但当我切换我的网站目录,然后在地址路径显示主目录路径 /.htaccess RewriteEngine On RewriteBase / Options -Indexes RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC] RewriteRule !^example_home_dir/ /example_home_dir%{REQUEST_URI} [L,NC] 当我在主页上时,一切正常


我的服务器上有多个站点和域。
我不知道我做错了什么,但当我切换我的网站目录,然后在地址路径显示主目录路径

/.htaccess

RewriteEngine On
RewriteBase /
Options -Indexes

RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule !^example_home_dir/ /example_home_dir%{REQUEST_URI} [L,NC]
当我在主页上时,一切正常(example.com显示example\u home\u dir的内容)。
当我用子目录手动进入域时,所有链接也正常工作(example.com/subdir显示subdir内容)。
当我单击锚并重定向到“example.com/subdir”时,服务器会将我重定向到“example.com/example\u main\u dir/subdir”,并显示subdir内容

我尝试了很多解决方案,但都没有效果。
出于好奇,我会说我的symfony项目中的重定向工作得很好。


我不知道该怎么办:(非常感谢您的帮助。

您可以使用重定向规则从URL中删除
示例\u home\u dir

DirectorySlash Off
Options -Indexes
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} \s/+example_home_dir/(\S*) [NC]
RewriteRule ^ /%1 [L,NE,R=301]

RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule !^example_home_dir/ example_home_dir%{REQUEST_URI} [L,NC]
另外,当URL指向目录时,请确保始终有一个尾随斜杠。因此,请使用
example.com/subdir/
而不是
example.com/subdir

确保使用新浏览器测试此更改