2011-07-28 59 views

回答

1

如果請求URI不包含「SWF 」, 「拇指」 等

RewriteCond %{REQUEST_URI} !(swf|thumbs|index.php|template.php) 

使/template.php?cat=etc/etc.php

RewriteRule ^([^/\.]+).php?$ template.php?cat=$1 [L,QSA] 

L =「最後的規則」和QSA =追加任何現有的查詢字符串到新創建的目標uri。

+0

或'/例子/ CAT/etc.ph' – PtPazuzu

+0

感謝您的解答(PHP幕後?)。但我沒有得到^([^/\。] +)是什麼意思是任何名稱文件的正則表達式?你可以說明什麼是^([^/\。] +)。php?$ - (最後$是什麼意思) – user392406

+0

按順序排列的每個部分: ' '^' - 行首 ' ' - $ 1表示的分組代表 '[^/\。]' - 任何不是/或文字的字符。 '+' - 不止一個上面的字符類 '.php' - 顯然(儘管。應該被轉義,所以應該是\ .php) '?' - 在正則表達式中未轉義意味着前一個字符的0或1(我認爲這應該也會被轉義) '$' - 行結束。由於在評論中缺少換行符,這將推動這個答案 – Sean

0

第一行開啓了重寫引擎

第二行寫着「如果請求URI不包含SWF或拇指或index.php文件...

第三行纔會被執行如果線2是真實的(即URL不包含任何的字符串),這將改寫像/123.php?一個URL template.php?cat=123。重寫是內部的,所以用戶只看到/123.php在他們的瀏覽器窗口。

+0

感謝您的回覆。這非常有幫助。你可以請建議我.htaccess教程初學者給我一步一步的信息。我真的不知道像^([^/\。] +)。php?$這樣的正則表達式。謝謝... – user392406

+0

專門用於URL重寫本指南(官方Apache文檔的一部分)是偉大的:http://httpd.apache.org/docs/2.0/misc/rewriteguide.html –

4

要回答有關正則表達式實際意義的問題(根據我對此的評論上述E原來的答案):

,以便各部分:

^ - 的那$ 1表示

[^/\.]分組 - - 不是/或文字的任何字符線

()的開始.

+ - 多於一個上述字符類別

.php - 明顯的(雖然。應逸出,所以它應該是\.php

? - 未轉義在正則表達式表示0或者先前字符

$的1 - 行尾。

你可能是最好關閉讀了一些正則表達式的教程,如: http://www.regular-expressions.info/tutorial.html