2009-04-15 156 views
3

我需要一組新鮮眼睛。我很難找出問題所在。URL重寫/正則表達式調試

在文件夾X我有在它下面的兩行.htaccess文件:

RewriteEngine on 
RewriteRule ^([A-Za-z0-9\.-]+)/?$ item-display.php?bibid=$1 [NC,L] 

我的理解是,在該目錄中任何事情都會被重定向到該項目,顯示頁面。問題是在項目顯示頁面上,回顯了bibid輸出的「顯示項目」的值。所以不知何故我重定向從: http://localhost/test/cat/item/14056a 到:http://localhost/test/cat/item/item-display.php?bibid=item-display

任何想法?

乾杯

回答

5

你必須排除要重定向到作爲也由模式匹配的文件:

RewriteCond %{REQUEST_URI} !/item-display\.php$ 
RewriteRule ^([A-Za-z0-9\.-]+)/?$ item-display.php?bibid=$1 [L] 
1

試試這個

RewriteEngine on 
RewritePath /test/cat/item 
RewriteRule ^([A-Za-z0-9\.-]+)/?$ item-display.php?bibid=$1 [L] 

我認爲問題是,它是着眼於整個URL,而不僅僅是最後一個項目ID的一部分。

+0

看到更新的答案 – 2009-04-15 13:32:47

+0

我覺得你RewriteBase後...它沒有出現改變結果雖然。獲取到正確的頁面,然後認爲bibid被設置爲'display-item'。我正在閱讀RewriteBase,希望能夠在文檔中找到一些東西。 – 2009-04-15 13:53:15

1

該請求經過了子處理,因此它提取了我所假定的重寫的URL的文件名部分。嘗試添加NS標誌。