Apache 使用mod_rewrite从url中删除两个子目录
我正试图删除我网站上的一些子目录。目前,当我需要访问用户设置时,我使用这个Apache 使用mod_rewrite从url中删除两个子目录,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我正试图删除我网站上的一些子目录。目前,当我需要访问用户设置时,我使用这个username.mywebsite.com/public/user/settings.php,我希望它看起来像username.mywebsite.com/settings.php。在我的根目录中,有一个包含以下内容的htaccess文件: RewriteCond%{REQUEST\u URI}^/公共/用户 RewriteRule^/(.*)$/public/user/$1 它不起作用了。另外,我是否必须像这样修改ht
username.mywebsite.com/public/user/settings.php
,我希望它看起来像username.mywebsite.com/settings.php
。在我的根目录中,有一个包含以下内容的htaccess文件:
RewriteCond%{REQUEST\u URI}^/公共/用户
RewriteRule^/(.*)$/public/user/$1
它不起作用了。另外,我是否必须像这样修改html href
?谢谢您需要去掉正则表达式模式中的前导/
。当URI通过htaccess文件中的规则发送时,斜杠被去掉。此外,在重写到/public/user/
目录之前,您应该检查目标是否存在:
RewriteCond %{REQUEST_URI} !^/public/user
RewriteCond %{DOCUMENT_ROOT}/public/user%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/public/user%{REQUEST_URI} -d
RewriteRule ^(.*)$ /public/user/$1 [L]
另外,我是否必须像这样修改html href
是的,规则只在一个方向上起作用,regex模式指向目标。永远不要反过来。因此,您需要确保您的内容包含您想要使用的URL。非常有效。谢谢