2010-07-12 14 views

回答

1

這是我想出了:

RewriteRule ^/?([^\./]*)[:;,\.]*$ category.php?cat=$1 [L,NS] 

任何人看到任何方式來改善呢?

0

嘗試這樣:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^.*$ category.php?cat=$0 [B] 

如果你想通過查詢字符串一起過,務必將B標誌更改爲B,QSA,但要知道,有人可以再通過GET參數cat,這將覆蓋你在重寫中設置的內容。如果你需要它們,有一些解決方法可以解決這個問題,但是否則應該爲你做。

+0

謝謝蒂姆。我找不到任何地方記錄的[B]標誌。你能解釋一下嗎?或者指給我一些關於它的信息? – Eric 2010-07-14 13:48:26

+0

噢,我實際上認爲這只是2.0文檔中的一個疏漏,但是直到Apache 2.2才能看到源代碼,所以如果您的網站是2.0版本,請不要使用它。無論如何,它避免了反向引用,所以如果出於任何原因你有'example.com/this&that',你不會得到'cat = this'和'that ='重寫,因爲&符號將被編碼。 – 2010-07-14 14:14:56