0

我的 .htaccess 中有这个规则

RewriteRule ^([^/\.]+)/?$ ?page=user&id=$1 [L]

它重写一个像

http://sitename.ext/nickname

http://sitename.ext/?page=user&nickname

问题是,使用带有点的网址,例如http://sitename.ext/nick.name.test我得到 404 错误..

我不擅长正则表达式..

4

2 回答 2

3

那是因为它没有被重写。您特别告诉它 exclude .,这就是它正在做的事情。

就个人而言,我更喜欢这样的东西:

RewriteRule user/(.+) ?page=user&id=$1 [L]
于 2012-06-13T22:04:28.517 回答
1

如果你想匹配除斜线以外的任何字符,正则表达式是[^/],因为\.它也会导致它不匹配点。

你的规则应该是

RewriteRule ^([^/]+)/?$ ?page=user&id=$1 [L]

您可能会发现网站很有帮助。

于 2012-06-13T22:04:52.437 回答