繁体   English   中英

htaccess中的点给出500内部错误

[英]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

我在这里所做的是将您的正则表达式规则更改为匹配:

  1. 多个字母数字字符[a-zA-Z0-9_-]+
  2. 可选的点字符\\.?
  3. 更多(可选)字母数字字符[a-zA-Z0-9_-]*

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM