Regex 如何在htaccess文件中使用正则表达式?
我创建了一个regexRegex 如何在htaccess文件中使用正则表达式?,regex,.htaccess,mod-rewrite,Regex,.htaccess,Mod Rewrite,我创建了一个regex[0-9]{1,10}[-][0-9a-z]{5,9}来查找1到10个数字,后面是破折号,后面是5到9个数字和小写字母,据我所知,它是如何工作的。但是我如何在htaccess文件中使用它来屏蔽从到的URL呢 我现在使用的规则是 RewriteRule /[0-9]{1,10}[-][0-9a-z]{5,9}/?$ realpage.php?id=$1 [QSA,L] …但它似乎不起作用。如果您使用它作为替换,您需要在希望匹配的位周围使用括号,$1表示第一个匹配的括号组,而
[0-9]{1,10}[-][0-9a-z]{5,9}
来查找1到10个数字,后面是破折号,后面是5到9个数字和小写字母,据我所知,它是如何工作的。但是我如何在htaccess文件中使用它来屏蔽从到的URL呢
我现在使用的规则是
RewriteRule /[0-9]{1,10}[-][0-9a-z]{5,9}/?$ realpage.php?id=$1 [QSA,L]
…但它似乎不起作用。如果您使用它作为替换,您需要在希望匹配的位周围使用括号,
$1
表示第一个匹配的括号组,而且您不需要在仪表板周围使用[]
RewriteRule /([0-9]{1,10}-[0-9a-z]{5,9})/?$ realpage.php?id=$1 [QSA,L]
或者,如果你想用另一种方式,你的“屏蔽URL来源”会让人困惑 不能直接使用
RewriteRule
匹配查询字符串参数
您必须使用RewriteCond
与之匹配,然后使用RewriteRule
进行重写
RewriteCond %{QUERY_STRING} id=([0-9]{1,10}[-][0-9a-z]{5,9})
RewriteRule ^realpage.php$ /%1/ [L]
首先,我猜你想用另一种方式来掩饰 无论如何,您的重写规则将是:
RewriteRule ^([0-9]{1,10}-[0-9a-z]{5,9})/?$ realpage.php?id=$1 [QSA,L]
注:
/
)包装您的模式李>
$1
将其引用(重写)到实际路径
案例希望这是有意义的。如果规则不是在.htaccess中,而是在配置文件中(例如在
中),则需要前导斜杠