2012-03-02 48 views
0

我使用mod_rewrite.htaccess改變雙目錄結構爲雙GET查詢字符串,像這樣:mod_rewrite的雙目錄

網址:http://domain.com/index.php?u=test&c=me

使用:http://domain.com/test/me/

後的mod_rewrite以下代碼在我的.htaccess文件中:

RewriteEngine On 
RewriteRule ^([^/]*)/([^/]*)/$ /index.php?u=$1&c=$2 [L] 

這很好,但如果沒有指定第二個目錄(例如, http://domain.com/test/)我想c變量等於「所有」,例如:

http://domain.com/index.php?u=test&c=all 

我怎樣才能做到這一點? 謝謝,正則表達式看起來像克林貢詩歌給我。我已經嘗試了上述代碼的幾個不同的變體,但沒有成功。

P.S.獎勵積分,如果你能添加一個尾部/即使一個不鍵入URL框中,使http://domain.com/test/me的處理一樣http://domain.com/test/me/http://domain.com/test被視爲同http://domain.com/test/

回答

2

喜歡這個?

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]*)\/?$ index.php?u=$1&c=all 
RewriteRule ^([^/]*)/([^/]+)\/?$ index.php?u=$1&c=$2 [L] 

也沒有獎金:P

+0

完美,謝謝! – themerlinproject 2012-03-03 00:08:15

+0

看起來我很快就說話了。出於某種原因,當我將兩個重寫代碼放在那裏時,它會破壞我的腳本。它開始拋出一個意外的錯誤。如果我刪除第二個重寫規則,它會通過罰款。思考? – themerlinproject 2012-03-03 00:12:57

+0

「意外的<錯誤」?你能否詳細說明一下? – Kisaro 2012-03-03 00:15:37