2014-02-24 62 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_-]+) ...