我正试图摆脱我网站上的一些子目录。目前,当我需要访问用户设置时,我使用此username.mywebsite.com/public/user/settings.php
,我希望它看起来像username.mywebsite.com/settings.php
。在我的根目录中,a有一个htaccess文件,其中包含以下内容:
RewriteCond %{REQUEST_URI} !^/public/user
RewriteRule ^/(.*)$ /public/user/$1
它不起作用。另外,我是否必须像这样<a href="/settings.php">
修改html href?谢谢
答案 0 :(得分:1)
您需要摆脱正则表达式模式中的前导/
。通过htaccess文件中的规则发送URI时,会删除斜杠。此外,您应该在重写到/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,如
<a href="/settings.php">
?
是的,规则只适用于一个方向,正则表达式模式到目标。从来没有反过来。因此,您需要确保您的内容包含您要使用的网址。