1

在我的根目录中,我有一个用户文件,其中包含<a href="/dashboard?name={$row['sub_user']}">我希望它转到 username.website/sub_user。此重写工作正常,但所有 .php 请求都将转到 username.website/dashboard 而不是 username.website/sub_user。你能告诉我为什么吗?

RewriteCond %{REQUEST_URI} !^/dashboard?

RewriteRule ^(.*)\.php$ dashboard?name=$1 [L]

我也有一些规则来摆脱 php 扩展:

RewriteCond %{QUERY_STRING} !^no-redirect-loop(&|$)

RewriteRule ^(.*)\.php$ $1 [NS,R=301,L]

RewriteCond %{QUERY_STRING} !^no-redirect-loop(&|$)

RewriteRule ^(.*)$ $1.php?no-redirect-loop [NS,QSA]

4

1 回答 1

1

您的规则不正确:

RewriteCond %{REQUEST_URI} !^/dashboard?
RewriteRule ^(.*)\.php$ dashboard?name=$1 [L]

因为它正在发送foo.php文件到/dashboard?name=foo

将您的规则更改为此以使其工作:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ dashboard?name=$1 [L,QSA]
于 2013-09-22T15:05:37.140 回答