2012-04-08 61 views
0

我的問題可能已經被問到,但是我在stackoverflow上搜索的所有問題都讓我困惑。我試圖做到這一點,以便當我做「www.website.com/newest/2」時,它轉到第2頁,當我做「www.website.com/newest/2/3」時,它轉到頁面2和第3項。什麼是好的是,網頁的工作。如果我將「www.website.com/newest/2」放到第二頁,但之後的任何內容(如「www.website.com/newest/2/3」)都不起作用。它不再繼續到第三個項目。只有頁面加載正確,但在頁面編號無效後在頁面上發佈數字。當我執行「www.website.com/newest/2/3」時,我查看了瀏覽器的源代碼,發現任何本應該顯示的與GET請求有關的產品編號的代碼甚至不在碼。這意味着我的物品/ ID號碼的GET請求被破壞。啓用.htaccess後獲取請求不起作用

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{HTTP_HOST} ^website\.com$ [NC] 
RewriteRule ^(.*)$ http://www.website.com/$1 [L,R=301] 
RewriteRule ^newest/(.+)*/?$ ./index.php?newest=$1 
RewriteRule ^newest/(.+)*/(.+)*/?$ ./index.php?newest=$1&id=$2 

回答

0

的問題是,因爲它需要進行匹配您(.+)*將匹配儘可能多的字符。改爲將它們改爲(.+?)

+0

這最終給我一個500 - 內部服務器錯誤。有什麼建議麼? – Ramin 2012-04-08 00:33:31

+0

@Ramin:我想mod_rewrite不支持nongreedy匹配的正則表達式。試試'([^ /] +)'。 – Ryan 2012-04-08 00:36:48

+0

你是說我應該把([^ /] +)代替(。+)* – Ramin 2012-04-08 00:41:47