2012-05-27 37 views
0

我已經得到了我最需要工作重寫,但我不能得到第二部分與2個變量的工作,這裏是我的代碼:重寫URL - 2變量不改變當前重寫

RewriteEngine On 
    RewriteBase/
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ entity.php?vanityName=$1 [L] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^([^/]*)/([^/]*)$ /entity.php?vanityName=$1&section=$2 [L] 

最後一位需要允許,例如http://example.com/vanityName/Section,但它不會傳遞段變量。 如何在保留當前重寫的同時修復此問題?

我怎樣才能得到它,所以它適用於/ vanityName,/ vanityName /節,但允許我繼續其他目錄自由改寫的,就像/包括/?

+1

您知道第二個規則更具體,第一個規則是全局規則。由於全球規則(或更好地說:更一般的規則)被放在第一位,所以更具體的規則永遠不會被執行。結論:你的htaccess只能運行到第5行,並且永遠不會進一步。 – Styxxy

+0

謝謝,我真的不知道mod_rewrite,第一次使用它:) –

回答

0

您可以添加額外的規則,你不希望重寫每個目錄:如果你寫這些規則RewriteBase /後直接

RewriteRule directoryName/? - [L] 

,沒有其他的規則將被檢查。