重定向到网站/用户名

时间:2013-09-22 14:44:06

标签: regex .htaccess mod-rewrite

在我的根目录中,我有一个包含<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]

1 个答案:

答案 0 :(得分: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]