我的 .htaccess 中有这个规则
RewriteRule ^([^/\.]+)/?$ ?page=user&id=$1 [L]
它重写一个像
http://sitename.ext/nickname
到
http://sitename.ext/?page=user&nickname
问题是,使用带有点的网址,例如http://sitename.ext/nick.name.test
我得到 404 错误..
我不擅长正则表达式..
我的 .htaccess 中有这个规则
RewriteRule ^([^/\.]+)/?$ ?page=user&id=$1 [L]
它重写一个像
http://sitename.ext/nickname
到
http://sitename.ext/?page=user&nickname
问题是,使用带有点的网址,例如http://sitename.ext/nick.name.test
我得到 404 错误..
我不擅长正则表达式..
那是因为它没有被重写。您特别告诉它 exclude .
,这就是它正在做的事情。
就个人而言,我更喜欢这样的东西:
RewriteRule user/(.+) ?page=user&id=$1 [L]
如果你想匹配除斜线以外的任何字符,正则表达式是[^/]
,因为\.
它也会导致它不匹配点。
你的规则应该是
RewriteRule ^([^/]+)/?$ ?page=user&id=$1 [L]
您可能会发现此网站很有帮助。