2012-05-29 87 views
0

我想使它所以,當我進入http://website.com/5/sometitle它打開/displayvideo.php?id=5 &標題= sometitle,這個目前與下面的代碼mod_rewrite的,規則重疊

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)/(.*)$ /displayvideo.php?id=$1&title=$2 [L] 

然而我也希望讓這個當我去http://website.com/5它會去/displayvideo.php?id=5 我已通過添加

RewriteRule ^(.*)$ /displayvideo.php?id=$1 [L] 

但是試過這個,僅僅用了一堆結束怪異的垃圾像無法打開實體l文件,就像/somefile.php一樣,因爲它會認爲somefile.php應該是由重寫程序編號的標記

這樣做還會導致其他重寫規則失效,因爲它會自動認爲/displayvideo.php? id = $ 1是新規則的標籤。

基本上在網站上的每一頁變成了500內部服務器錯誤

任何人知道如何解決這一問題? 感謝

回答

2

這應該這樣做。

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([0-9]+)/(.+)$ /displayvideo.php?id=$1&title=$2 [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([0-9]+)$ /displayvideo.php?id=$1 [L] 
+0

完美地工作,謝謝^^ – user1071461

1

優化你的正則表達式的:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 

RewriteRule ^([0-9]+)$ /displayvideo.php?id=$1 [L] 
RewriteRule ^([0-9]+)/(.*)$ /displayvideo.php?id=$1&title=$2 [L]