標籤:訪問 127.0.0.1 大小寫 gone mod 頁面 操作 .htaccess 開關
mod_rewrite是Apache的一個非常強大的功能,它可以實現偽靜態頁面。一些防盜鏈就是通過該方法做到的。
00x1 啟動rewrite引擎
可以使用兩種方式來寫rewite,一種是直接在httpd.conf當中寫。一種則是寫在.htaccess中。
00x2 如何啟用apache rewrite?
- 在httpd.conf當中找到“LoadModule rewrite_module modules/mod_rewrite.so”將#號去除即開啟了apache rewrite。
- 開啟.htaccess,依舊是在httpd.conf檔案當中的AllowOverride all的“#”號去除即可。
可以在phpinfo介面當中查看rewrite開啟資訊,Loaded Modules處查看:mod_rewrite 如存在即已開啟。
00x3 書寫Rewrite代碼:
- 如果要直接在httpd.conf中輸入的話,則輸入在“</IfModule>”標籤結尾處。
2.在htaccess書寫。在windows當中是不允許建立這樣的檔案,那麼我們要如何建立呢?先建立一個htaccess.txt可以進入cmd,鍵入:rename htaccess.txt .htaccess便可以產生一個.htaccess檔案。簡單的說就是建一個txt然後使用cmd重新命名為htaccess即可。
00x4 Rewrite規則學習
建立立好一個.htaccess檔案了以後,使用記事本開啟。開始學習Rewrite規則。
開始第一個案例:
RewriteEngine on #rewriteengine為重寫引擎開關on為開啟off為關閉RewriteRule ^(.*?).html 1.php?id=$1
Rewriterule是重寫規則。後面的是正則。
1.php的代碼:
<?php echo $_GET[‘id‘]; ?>
寫好rewrite了以後重啟apache。然後訪問127.0.0.1/t_test.html
輸出的效果如下所示:
成功的實現了偽靜態。
這種僅僅只是以檔案的方式寫偽靜態,我們還可以以檔案夾的方式寫
直接在剛才的基礎上使用正則($)的作用來操作。代碼如下:
RewriteEngine onRewriteRule ^t_(.*)/$ 1.php?id=$1
可以隨便你怎麼寫就怎麼寫。
相關知識
mod_rewrite 規則修正符
- 1) R 強制外部重新導向
- 2) F 禁用URL,返回403HTTP狀態代碼。
- 3) G 強制URL為GONE,返回410HTTP狀態代碼。
- 4) P 強制使用代理轉寄。
- 5) L 表明當前規則是最後一條規則,停止分析以後規則的重寫。
- 6) N 重新從第一條規則開始運行重寫過程。
- 7) C 與下一條規則關聯8) T=MIME-type(force MIME type) 強制MIME類型
- 9) NS 只用於不是內部子請求
- 10) NC 不區分大小寫
- 11) QSA 追加請求字串
- 12) NE 不在輸出轉義特殊字元 \%3d$1 等價於 =$1
Apache Rewrite 擬靜態