[英]dot in htaccess gives 500 internal error
Options +Indexes
# or #
IndexIgnore *
RewriteEngine On
RewriteBase /
RewriteRule ^([a-zA-Z0-9_-]+)$ profile.php?u=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ profile.php?u=$1
我想在重写规则中添加点,以便在它们之间使用点的用户名像rahul.kapoor一样不起作用,但rahulkapoor可以,请帮助。
尽管点在正则表达式中通常具有特殊含义,但是在字符类中使用时,它不是元字符,因此在您的情况下,您可以使用:
RewriteRule ^([a-zA-Z0-9_.-]+)/?$ profile.php?u=$1
请注意,我已经将结尾处的正斜杠设为可选,因此您只需要使用一行而不是两行即可。
编辑:您还可以使用元字符一词来进一步简化它:
RewriteRule ^([\w.-]+)/?$ profile.php?u=$1
对于.htaccess
文件中使用的正则表达式, 点字符具有特殊含义 。 它的意思是“(几乎)任何字符”。
如果要使用“真实”点字符,则必须使用反斜杠对其进行转义:
RewriteRule ^([a-zA-Z0-9_-]+\.?[a-zA-Z0-9_-]*)/$ profile.php?u=$1
我在这里所做的是将您的正则表达式规则更改为匹配:
[a-zA-Z0-9_-]+
\\.?
[a-zA-Z0-9_-]*
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.