2013-03-12 55 views
2

我真的很新的URL重寫,並與正則表達式完全吸,很抱歉,如果我的問題是愚蠢的(因爲我不完全理解的主題)的.htaccess雙重定向

這裏是我重寫規則

RewriteRule ^trends/conversion/([_a-zA-Z0-9-]*) trends/conversion.php?$1 

RewriteRule ^trends/([_a-zA-Z0-9-]*)$ trends/index.php?$1 

基本上,我總是以index.php頁爲結尾,除非我刪除第二條規則,當然。一旦達到conversion.php,我可以讓mod重寫停止嗎?

在此先感謝

法比奧

附:我忘了說,我需要針對這兩個頁面的查詢字符串,這就是爲什麼第二個也有一個正則表達式。不幸的是,我不能改變這個URL結構,這就是爲什麼我堅持

回答

1

必須先添加一個L標誌,以你的第一條規則,並添加RewriteCond你的第二個以防止conversion.php再次被改寫

RewriteRule ^trends/conversion/([_a-zA-Z0-9-]*) trends/conversion.php?$1 [L] 

RewriteCond %{REQUEST_URI} !conversion\.php 
RewriteRule ^trends/([_a-zA-Z0-9-]*)$ trends/index.php?$1 [L] 

您應該考慮將查詢字符串更改爲類似id=$1或類似的內容。否則,您在每個請求上都沒有相同的GET參數,而是一個任意字符串。

+0

謝謝!以下方式也可以工作: RewriteRule^trends/conversion /([_ a-zA-Z0-9 - ] *)trends/conversion.php?$ 1 [QSA] RewriteRule^trends /([_ a-zA- Z0-9 - ] *)$ trends/index.php?$ 1 [QSA] – NemoPS 2013-03-13 20:44:22