2014-02-24 55 views
1

我在我的.htaccess底线和破折号在变量

RewriteRule ^([\da-z]+)/([\da-z]+)/(\d+)/?$ index.php?office=$1&page=$2&news_id=$3 [L,QSA,NC] 
RewriteRule ^([\da-z]+)/([\da-z]+)/?$ index.php?office=$1&page=$2 [L,QSA,NC] 

以下规则不被识别时,我有一个像网址:www.test.com/media/continuous-training它不将连续训练发送给变量。如果我不使用短划线或下划线,一切都很好。

我认为问题在于我的规则中的正则表达式,但不知道如何解决它。

谢谢!

回答

0

您可能会更好使用你的字符类[W-]关闭,将匹配[A-Za-z0-9_-]

RewriteRule ^([\w-]+)/([\w-]+)/(\d+)/?$ index.php?office=$1&page=$2&news_id=$3 [L,QSA] 
RewriteRule ^([\w-]+)/([\w-]+)/?$ index.php?office=$1&page=$2 [L,QSA] 
+0

感谢它的工作! – lStoilov

+0

不客气,很高兴它解决了。 – anubhava

1

您需要将-_添加到您的角色等级中。使用此:

RewriteRule ^([\da-z_-]+)/([\da-z_-]+) ...