2010-10-02 77 views
0
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteRule ^browse/videos/(.*)/(.*)/(.*)/(.*) /videos.php?sortby=$1&filter=$2&page=$3&title=$4 
RewriteRule ^videos/(.*)/(.*) /playvideo.php?videoid=$1&title=$2 
</IfModule> 

網址www.example.com/browse/videos/z/0/1/LastAdded去videos.php的Apache 2的mod_rewrite問題

但網址www.exaple.com/videos/10/play .html也去videos.php不玩playvideo.php

爲什麼?

+0

它看起來像Gumbo給你你需要的答案。如果是這樣,請點擊答案旁邊的複選標記以接受他的回答。 – bradym 2010-10-09 05:40:26

回答

0

這可以通過MultiViews引起的。嘗試使用禁用它:

Options -MultiViews 

此外,你應該使用更具體的模式比.*,例如[^/]+

RewriteRule ^browse/videos/([^/]+)/([^/]+)/([^/]+)/([^/]+)$ /videos.php?sortby=$1&filter=$2&page=$3&title=$4 
RewriteRule ^videos/([^/]+)/([^/]+)$ /playvideo.php?videoid=$1&title=$2 
+0

我發現 <目錄/ var/WWW /> 選項指標的FollowSymLinks多視圖 [...] 刪除MultViews後一切工作正常。 謝謝! – 2010-10-02 10:22:05

+0

@ user464492:不客氣! – Gumbo 2010-10-02 10:24:02

0

不知道爲什麼這是你的髮型,但無論如何,你應該使用這樣的事情。

RewriteRule ^browse/videos/(.+)/(.+)/(.+)/(.+) /videos.php?sortby=$1&filter=$2&page=$3&title=$4 [L] 
RewriteRule ^videos/(.+)/(.+) /playvideo.php?videoid=$1&title=$2 [L] 
0

這對我的作品。爲了追查爲什麼它不爲你工作,你應該啓用mod_rewrite的日誌記錄:

RewriteLogLevel 9 
RewriteLog logs/rewrite.log 

那麼你應該試着去了解什麼是寫在那裏。如果你不理解它,請在這裏發佈,我們會盡力解釋它。

+0

在選項中刪除MultViews後,一切正常 – 2010-10-02 10:23:38