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有效,请帮忙。
答案 0 :(得分:2)
虽然点通常在正则表达式中具有特殊含义,但在字符类中使用时它不是元字符,因此在您的情况下您可以使用:
RewriteRule ^([a-zA-Z0-9_.-]+)/?$ profile.php?u=$1
请注意,我在末尾选择了正斜杠,因此您只需使用一行而不是两行。
编辑:您还可以使用元字符一词来进一步简化:
RewriteRule ^([\w.-]+)/?$ profile.php?u=$1
答案 1 :(得分:0)
使用.htaccess
文件the dot character has a special meaning中使用的正则表达式。它意味着“(几乎)任何角色”。
如果你想使用“真正的”点字符,你必须用反斜杠来逃避它:
RewriteRule ^([a-zA-Z0-9_-]+\.?[a-zA-Z0-9_-]*)/$ profile.php?u=$1
我在这里所做的是将你的正则表达式规则改为匹配:
[a-zA-Z0-9_-]+
\.?
[a-zA-Z0-9_-]*