2011-11-14 46 views
0

重寫我的網址之前file.php?style=foo&page=2工作正常。爲什麼我的分頁在mod重寫後無法工作?

重寫後,它停止工作,只是停留在末端的?page變量在同一頁上像它沒有被抓到:

foo-new?page=2

的重寫頁面參數後停止對清潔工作網址。

這裏就是我重寫規則是這樣的:

RewriteCond %{QUERY_STRING} ^style=([A-Za-z-]+)/?$ 
RewriteRule ^file\.php$ %1-new? [NS,R=301,L] 
RewriteRule ^([A-Za-z-]+)-new/?$ file.php?style=$1&redirect=no [NS] 
+0

你可以使用像'/ foo/2'或'/ foo-new/2'這樣的結構,以便重定向到'file.php?style = foo&page = 2'? –

+0

@BookOFZeus是的,我就是這樣。但是,在聽到你使用參數'?page = 2'獲得更多'link juice'後,就改變了它。 – checkenginelight

+0

也許如果你確切地想要做什麼,它會更容易幫助你 – user544262772

回答

0

所以我翻譯你想要做什麼,然後,我改變你的規則,並把它們寫。請告訴我,如果我是對還是錯。

您想檢查查詢字符串中是否有可選參數「style」。

RewriteCond %{QUERY_STRING} ^style=([A-Za-z-]+)/?$ 

什麼是^/?$的意義呢?刪除它們:

RewriteCond %{QUERY_STRING} style=([A-Za-z-]+) 

這種方式更清晰,應該仍然適用於你想要的。

RewriteRule ^file\.php$ %1-new? [NS,R=301,L] 

?是什麼意思?刪除:

RewriteRule ^file\.php$ %1-new [NS,R=301,L] 

所以,請嘗試這些規則,並告訴我,如果他們的工作,如果沒有,請更具體,或給你想重寫真正的URL樣本:

RewriteCond %{QUERY_STRING} style=([A-Za-z-]+)$ 
RewriteRule ^file\.php$ %1-new [QSA,NS,R=301,L] 
RewriteRule ^([A-Za-z-]+)-new/$ file.php?style=$1&redirect=no [NS] 
相關問題