帮助.htaccess RewriteRule

时间:2010-05-29 13:32:50

标签: regex .htaccess mod-rewrite

以下网址的重写规则是什么?

mysite.com/001234-some-keywords.html

我想捕捉6位数的参考号,如([0-9] {6})
我的索引文件是

templates/default/index.php?ref=001234

有一天我做了一个崩溃的正则表达式..我保证。

1 个答案:

答案 0 :(得分:0)

可能

RewriteRule ^([0-9]{6}).*$ templates/default/index.php?ref=$1
  • ([0-9]{6})已经正确,它会捕获六位数字
  • .*之后匹配任何字符。
  • $1被第一个捕获组()
  • 的内容替换

如果您想限制网址只有恰好有六位数才能匹配,那么它应该如下所示(请注意短划线-):

RewriteRule ^([0-9]{6})-.*$ templates/default/index.php?ref=$1

或仅在网址以.html结尾时匹配网址:

RewriteRule ^([0-9]{6})-.*?\.html$ templates/default/index.php?ref=$1

我建议阅读mod_rewrite documentation 另外regular-expressions.info非常适合学习正则表达式。