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