2

我对 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]

它不工作。我应该添加什么才能使其正常工作?

4

1 回答 1

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]

你的 last RewriteRules 比它需要的复杂得多。例如,([^/]*)+应该只是[^/]+. 如果您提供有关其尝试匹配的内容的更多详细信息,我可以建议进行一些简化。

于 2013-10-08T15:45:43.387 回答