天天看點

Apache的URL位址重寫(RewriteCond與RewriteRule)

Apache的URL位址重寫

第一種方法:Apache環境中如果要将URL位址重寫,正規表達式是最基本的要求,但對于一般的URL位址來說,基本的比對就能實作我們大部分要求,是以除非是非常特殊的URL位址,但這不是我要讨論的範圍,簡單幾招學會Apache中URL位址重寫,通過執行個體展示,輕松學會URL位址重寫.

URL執行個體

重寫URL:http://www.baidu.com/?p=152

原始URL:http://www.baidu.com/p152.html

重寫規則:

^p([0-9]+)\.html      /?p=$1     [L]

正則基礎知識:

^ 比對行的開始,比對URL位址的開頭部分,對于RewriteRule而言,域名(http://www.biuuu.com)不是URL位址的一部分,如上:?p=152

() 分隔一個被捕獲的表達式,如上:([0-9]+)

[] 定義字元類,如上:[0-9] 表示從0-9的數字

+ 說明前面的字元可以被重複比對1次或數次,如上:[0-9]+,表示任何數字組合

\ 字元轉義,如上:轉義.

其它:

[L] 表示last,停止比對其它

方法如下:

1,打開httpd.conf檔案,找到

#LoadModule rewrite_module modules/mod_rewrite.so 注釋前面#

2,打開httpd-vhosts.conf檔案,在VirtualHost添加重寫規則,

RewriteEngine On

RewriteRule ^p([0-9]+)\.html      /?p=$1     [L]

基本上就上面這兩個步驟,其實總的來說,Apache中URL位址重寫還是比較簡單的,比看文檔學習要快的多,不過要想深入了解還是有必要看看相關文檔的,其它規則可以自定義。記住一點:任何比對其實就是一個正規表達式的替換過程。

建立友好的搜尋引擎URL位址對于PHP程式員來說非常重要,是以簡單學會Apache中URL位址重寫将是一項最基本的要求。

參考

https://blog.csdn.net/function__/article/details/54379804

https://blog.csdn.net/qq_24127857/article/details/79982370  //Nginx的rewrite子產品

後續補充

...

繼續閱讀