Htaccess重写规则代码

时间:2013-10-08 15:38:07

标签: .htaccess

我的htaccess有问题。我尝试设置从http://website.tld/index.php?a=profile&u=namehttp://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]

它不起作用。我应该添加什么才能使其有效?

1 个答案:

答案 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远比它需要的复杂得多。例如,([^/]*)+应为[^/]+。如果您提供有关其尝试匹配的更多详细信息,我可以建议一些简化。

相关问题