htaccess隐藏目录名不起作用。

问题描述 投票:0回答:1

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

.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_home_dir的内容)。当我手动输入域名和子目录时,一切都很正常(example.comsubdir显示子目录的内容)。当我点击锚点并重定向到 "example.comsubdir "时,服务器将我重定向到 "example.comexample_main_dirsubdir "并显示subdir内容。

我尝试了很多解决方案,但都没有效果。我想说的是,在我的symfony项目中重定向工作得很好。 我不知道该怎么办 :( 非常感谢你的帮助。

.htaccess apache2
1个回答
1
投票

你可以使用一个重定向规则来剥离 example_home_dir 从URL中删除。

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.

请确保使用新的浏览器来测试这个变化。

© www.soinside.com 2019 - 2024. All rights reserved.