我想知道下面的代碼在.htaccess文件提前做(好奇心)的.htaccess RewriteCond指令
RewriteEngine On
RewriteCond %{REQUEST_URI} !(swf|thumbs|index.php|template.php)
RewriteRule ^([^/\.]+).php?$ template.php?cat=$1 [L,QSA]
感謝....
我想知道下面的代碼在.htaccess文件提前做(好奇心)的.htaccess RewriteCond指令
RewriteEngine On
RewriteCond %{REQUEST_URI} !(swf|thumbs|index.php|template.php)
RewriteRule ^([^/\.]+).php?$ template.php?cat=$1 [L,QSA]
感謝....
如果請求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。
第一行開啓了重寫引擎
第二行寫着「如果請求URI不包含SWF或拇指或index.php文件...
第三行纔會被執行如果線2是真實的(即URL不包含任何的字符串),這將改寫像/123.php?
一個URL template.php?cat=123
。重寫是內部的,所以用戶只看到/123.php
在他們的瀏覽器窗口。
感謝您的回覆。這非常有幫助。你可以請建議我.htaccess教程初學者給我一步一步的信息。我真的不知道像^([^/\。] +)。php?$這樣的正則表達式。謝謝... – user392406
專門用於URL重寫本指南(官方Apache文檔的一部分)是偉大的:http://httpd.apache.org/docs/2.0/misc/rewriteguide.html –
要回答有關正則表達式實際意義的問題(根據我對此的評論上述E原來的答案):
,以便各部分:
^
- 的那$ 1表示
[^/\.]
分組 - - 不是/
或文字的任何字符線
()
的開始.
+
- 多於一個上述字符類別
.php
- 明顯的(雖然。應逸出,所以它應該是\.php
)
?
- 未轉義在正則表達式表示0或者先前字符
$
的1 - 行尾。
你可能是最好關閉讀了一些正則表達式的教程,如: http://www.regular-expressions.info/tutorial.html
或'/例子/ CAT/etc.ph' – PtPazuzu
感謝您的解答(PHP幕後?)。但我沒有得到^([^/\。] +)是什麼意思是任何名稱文件的正則表達式?你可以說明什麼是^([^/\。] +)。php?$ - (最後$是什麼意思) – user392406
按順序排列的每個部分: ' '^' - 行首 ' ' - $ 1表示的分組代表 '[^/\。]' - 任何不是/或文字的字符。 '+' - 不止一個上面的字符類 '.php' - 顯然(儘管。應該被轉義,所以應該是\ .php) '?' - 在正則表達式中未轉義意味着前一個字符的0或1(我認爲這應該也會被轉義) '$' - 行結束。由於在評論中缺少換行符,這將推動這個答案 – Sean