快速修改重写/正则表达式问题

时间:2011-12-05 14:00:03

标签: regex .htaccess mod-rewrite

我正在尝试设置我的.htaccess文件,为我做一些漂亮的重定向。

现在我有以下网址:

  

mysite.com/?video=1

我希望有以下网址:

  

mysite.com/1 /

现在我拼凑了以下正则表达式:

RewriteRule ^(.*)/?$ /index.php?v=$1 [L]

如果网址格式为

,则效果很好
  

mysite.com/2

,但如果格式为

则不是
  

mysite.com/2 /

,请注意尾随斜杠。

所以我真正需要帮助的是我的正则表达式! :)

2 个答案:

答案 0 :(得分:1)

尝试使量词非贪婪

^(.*?)/?$

否则尾部斜杠与.匹配,因为它的贪婪和显式斜杠是可选的。

答案 1 :(得分:0)

Stema的想法应该有效。或者你可以通过例如更正确的方式使正则表达式更具体只接受数字。

RewriteRule ^([0-9]+)/?$ /index.php?v=$1 [L]

或字母数字

RewriteRule ^([0-9a-zA-Z]+)/?$ /index.php?v=$1 [L]