2

我试图摆脱我网站上的一些子目录。目前,当我需要访问用户设置时,我使用它username.mywebsite.com/public/user/settings.php并且我希望它看起来像username.mywebsite.com/settings.php. 在我的根目录中有一个 htaccess 文件,其中包含以下内容:

RewriteCond %{REQUEST_URI} !^/public/user

RewriteRule ^/(.*)$ /public/user/$1

它不工作。另外,我是否必须像这样修改html href <a href="/settings.php">?谢谢

4

1 回答 1

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">

是的,该规则仅在一个方向上起作用,正则表达式模式目标。永远不要反过来。因此,您需要确保您的内容具有您想要使用的 URL。

于 2013-09-05T19:14:30.680 回答