Apache開啟rewrite重寫模組

2021-10-07 03:18:24 字數 2457 閱讀 6959

apache開啟重寫,需要在httpd.conf檔案中去除#,開啟mod_rewrite模組

loadmodule rewrite_module modules/mod_rewrite.so

rewritecond就像我們程式中的if語句一樣,表示如果符合某個或某幾個條件則執行rewritecond***鄰的rewriterule語句,這就是rewritecond最原始、基礎的功能

rewriteengine on

rewritecond % ^mozilla//5/.0.*

rewriterule index.php index.m.php

rewritecond % ^lynx.*

rewriterule index.php index.l.php

rewriterule index.php index.b.php

上面語句的作用是當你是用ff瀏覽器訪問index.php這個檔案的時候,會自動讓你訪問到index.m.php這個檔案,當你是用一些移動終端訪問的 時候,會讓你對index.php這個檔案的訪問實際訪問的是index.l.php去,如果你是用其它的瀏覽器訪問的時候,會讓你跳到 index.b.php

rewriteengine on          

rewritebase /

rewritecond % !^443$

rewriterule ^.*$ https://%% [l,r]

含義是這樣的:為了讓使用者訪問傳統的http://轉到https://上來,用了一下rewrite規則:

第一句:啟動rewrite引擎

第三句:rewrite的條件是訪問的伺服器端口不是443埠

第四句:這是正規表示式,^是開頭,$是結束,/?表示有沒有/都可以(0或1個),(.*)是任何數量的任意字元

整句的意思是講:啟動rewrite模組,將所有訪問非443埠的網域名稱請求,url位址內容不變,將http://變成https://。

只是針對某乙個url的https跳轉

rewriteengine on

rewritecond % 80

rewritecond % /beijing

rewriterule ^(.*$) [r,l]

rewriteengine on

rewritecond % !^443$

rewritecond % !^/tz.php

rewriterule (.*) https://%/$1 [r]

% 說明訪問埠

% 比如如果url是 http://localhost/tz.php,則是指 /tz.php

% 比如如果url是 http://localhost/tz.php,則是指 localhost

以上規則的意思是,如果訪問的url的埠不是443,且訪問頁面不是tz.php,則應用rewriterule這條規則。這樣便實現了:訪問了 http://localhost/index.php 或者 http://localhost/admin/index.php 等頁面的時候會自動跳轉到 https://localhost/index.php 或者 https://localhost/admin/index.php,但是訪問 http://localhost/tz.php 的時候就不會做任何跳轉,也就是說 http://localhost/tz.php 和 https://localhost/tz.php 兩個位址都可以訪問。

rewriteengine on

rewritebase /

rewritecond % 443

rewriterule ^(.*)$ [r=301,l]

其中r=301表示moved permanently,即告訴搜尋引擎或者瀏覽器下去直接訪問後者的位址,如果只是試驗性地重定向,可以使用r=302(found),臨時跳轉

apache模組mod_rewrite提供了乙個基於正規表示式分析器的重寫引擎來實時重寫url請求。它支援每個完整規則可以擁有不限數量的子規則以及附加條件規則的靈活而且強大的url操作機制。此url操作可以依賴於各種測試,比如伺服器變數、環境變數、http頭、時間標記,甚至各種格式的用於匹配url組成部分的查詢資料庫。

mod_rewrite模組可以操作url的所有部分(包括路徑資訊部分),在伺服器級的(httpd.conf)和目錄級的(.htaccess)配置都有效,還可以生成最終請求字串。此重寫操作的結果可以是內部子處理,也可以是外部請求的轉向,甚至還可以是內部**處理。

以下重點介紹下rewriterule 的規則以及引數說明。rewriterule指令是重寫引擎的根本。此指令可以多次使用。每個指令定義乙個簡單的重寫規則。這些規則的定義順序尤為重要——在執行時,規則是按這個順序逐一生效的。

Apache開啟rewrite實現偽靜態

開啟rewrite的方法非常簡單,開啟apache安裝目錄下的conf httpd.conf檔案 去掉 loadmodule rewrite module modules mod rewrite.so 前面的井號注釋 loadmodule rewrite module modules mod rew...

Apache開啟rewrite實現偽靜態

開啟rewrite的方法非常簡單,開啟apache安裝目錄下的conf httpd.conf檔案 去掉 loadmodule rewrite module modules mod rewrite.so 前面的井號注釋 loadmodule rewrite module modules mod rew...

使用Apache的rewrite技術

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