2010-11-02 80 views
0

我有以下動態網址...我該如何解決這個問題htaccess的

http://www.mydomain.com/v/dynamicvaluehere 

和我在htaccess的有以下

RewriteRule ^v/(.*)$ script.php?name=$1 [NC,L] 

,它工作正常現在我想進一步創造即

http://www.mydomain.com/v/dynamicvaluehere/Page-dyanamicnumberhere.html 

和我在htaccess的有以下

RewriteRule ^v/(.*)/Page-(.*)\.html$ script.php?name=$1&number=$2 [NC,L] 

,但它不能正常工作,請幫助... 也確實注意到了dynamicvalue其次mentnioned是薩米如上所述,但只有進一步包括dynamicnumber ...

回答

1

我認爲這個問題可能是你使用的通配符。如果你的.htaccess看起來是這樣的:

RewriteRule ^v/(.*)$ script.php?name=$1 [NC,L] 
RewriteRule ^v/(.*)/Page-(.*)\.html$ script.php?name=$1&number=$2 [NC,L] 

則沒有圖案永遠不會達到第二個參數,因爲(.*)/Page-(.*)\.html實際上(.*)下摔倒第一。

你既可以優化您的通配符是這樣的:

RewriteRule ^v/([A-Za-z0-9].*)$ script.php?name=$1 [NC,L] 
RewriteRule ^v/([A-Za-z0-9].*)/Page-([0-9].*)\.html$ script.php?name=$1&number=$2 [NC,L] 

,或者甚至嘗試你的語句的順序切換到:

RewriteRule ^v/(.*)/Page-(.*)\.html$ script.php?name=$1&number=$2 [NC,L] 
RewriteRule ^v/(.*)$ script.php?name=$1 [NC,L] 
0

永遠不會被達到你的第二個規則,因爲貪婪性質第一。你可以把它放在第一條規則之上,或者讓你的第一條規則更加具體。

嘗試以下操作:

RewriteRule ^v/(.+)/Page-(.+)\.html$ script.php?name=$1&number=$2 [NC,L] 
RewriteRule ^v/(.*)$ script.php?name=$1 [NC,L]