我的htaccess有问题。我尝试设置从http://website.tld/index.php?a=profile&u=name到http://website.tld/name
的链接htaccess文件已经有了这个:
RewriteEngine on
RewriteCond %{request_filename} -f
RewriteRule ^(.*) $1 [L]
RewriteRule ^(([^/]*)+)(/([^/]{0,32})(/.+)?)?$ index.php?a=$1&q=$3 [L]
我补充说:
RewriteRule ^([^/]*)$ /index.php?a=profile&u=$1 [L]
它不起作用。我应该添加什么才能使其有效?
答案 0 :(得分:0)
您的新重写规则应该在最后一个之前,因为它也匹配/name
。
RewriteEngine on
# if a file then stop processing
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^([^/]+)$ /index.php?a=profile&u=$1 [L]
RewriteRule ^(([^/]*)+)(/([^/]{0,32})(/.+)?)?$ /index.php?a=$1&q=$3 [L]
你的上一次RewriteRule
远比它需要的复杂得多。例如,([^/]*)+
应为[^/]+
。如果您提供有关其尝试匹配的更多详细信息,我可以建议一些简化。