apache關於rewrite方面的實驗

2021-06-23 05:01:26 字數 1661 閱讀 5692

實驗環境為apache2.2.22

win下

有乙個檔案 正常訪問為player.php?id=1

現在想這樣實現:

player/1.html

第一種方法

直接修改httpd.conf檔案

loadmodule rewrite_module modules/mod_rewrite.so

rewriteengine on

rewriterule ^/player/(.*).html$ /player.php?id=$1

這樣子就可以直接實現

但是目前看來

rewriterule player/(.*).html$ /player.php?id=$1 這樣也可以

第二種方法,先要讓apache 支援.htaccess檔案

修改httpd.conf

用文字編輯器開啟後查詢

options followsymlinks

allowoverride none

改為options followsymlinks

allowoverride all

就可以了

然後,建立.htaccess檔案

一種是建立乙個htaccess檔案,然後進入cmd 執行命令 rename htaccess .htaccess

或者直接用編輯器 如notepad++ notepad在儲存時直接儲存為 .htaccess 即可 副檔名一定要為*.*才可以

rewriteengine on

rewriterule !\.$ index.php

rewriterule /player-(.*).html$ player.php?id=$1

第二行意思是不對靜態檔案進行專項判斷

下面提供一些參考:

1.apache rewrite規則的書寫

rewriteengine on

rewriterule ^/test([0-9]*).html$ /test.php?id=$1

rewriterule ^/new([0-9]*)/$ /new.php?id=$1 [r]

rewriteengine on

#當我們訪問的位址不是以www.163.com開頭的,那麼執行下一條規則

rewritecond % !^www.163.com [nc]

rewriterule ^/(.*) [l]

2.apache 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技術

使用apache的rewrite技術 做php專案中需要用到url重定向技術,基本上的需求就是把比如 user heiyeluren 重定向到 user.php?uid heiyeluren 之類的url上,當然,你也可以把 article 200707291011.html重定向到 article...

使用Apache的rewrite技術

使用apache的rewrite技術做php專案中需要用到url重定向技術,基本上的需求就是把比如 user heiyeluren 重定向到 user.php?uid heiyeluren 之類的url上,當然,你也可以把 article 200707291011.html重定向到 article....

apache 重寫除錯 rewrite 錯誤

很尷尬,老是很小的地方引發很大的問題,莫非這就是傳說中的技術?遇到這個問題,檢查了半天,可是最後的改動竟然只是刪除乙個 關於apache 重寫url的除錯方法可以用rewritelog檢視除錯資訊。serveradmin postmaster dummy host.localhost documen...