返回首頁
使用.htaccess實現apache URL重定向 進入詳細
一、什么是URL重定向?URL重定向(URL redirection,或稱網址重定向或網域名稱轉址),是指當使用者瀏覽某個網址時,將他導向到另

一、什么是URL重定向?

URL重定向(URL redirection,或稱網址重定向或網域名稱轉址),是指當使用者瀏覽某個網址時,將他導向到另一個網址的技術。

二、URL重定向怎么配置?

1)首先需要apache開啟重定向,修改httpd.conf配置:

1  查找: 2  Options FollowSymlinks 3  AllowOverride None 5  改為: 6  Options FollowSymlinks 7 AllowOverride All

      2)去掉下面的注釋 

LoadModule rewrite_module modules/mod_rewrite.so      //去掉行前的#

      3)重定向的配置在哪寫?

        有兩種方式,第一種是在httpd.conf中寫,這種寫法適合有服務器完整權限的網站管理員,寫法大概如下:

 httpd.conf配置url重定向

4)我們這里主要介紹另外一種方式:在網站目錄中使用.htaccess,這種方法適合采用虛擬主機形式的網站管理員,

         這兩種辦法設置的重定向規則其實基本上都是一樣的,只是設置的地方不同。

三、基本正則表達式

因為URL重定向語法中大量使用了正則表達式,并且正則是每隔一段時間不用都必然會淡忘的東西,所以我們有必要先回顧一下基本的正則寫法:

復制代碼
.    換行符以外的所有字符  \w   匹配字母或數字或下劃線或漢字  \s   匹配任意的空白符  \d   匹配數字  \b   匹配單詞的開始或結束   ^   匹配字符串的開始  $   匹配字符串的結束  *   重復零次或更多次  +   重復一次或更多次  ?   重復零次或一次   {n}         重復n次   {n,}        重復n次或更多次   {n,m}       重復n到m次  () $1 $2    一個括號代表一個分組,第一個括號里匹配的內容就用$1引用,第二個括號匹配的內容用$2引用,以此類推......
復制代碼

四、.htaccess都可以做什么?

.htaccess文件可以的事情,主要包括:文件夾密碼保護、用戶自定義重定向、自定義404頁面、擴展名偽靜態化、禁止特定IP地址的用戶、只允許特定IP地址的用戶、禁止目錄列表,等等。。

五、.htaccess語法規則

我們先看一個圖片防盜鏈的例子:

復制代碼
1 RewriteEngine On 
2 Rewitebase /
3 RewriteCond %{HTTP_REFERER} !^http://(.+.)?baidu.com/ [NC]        //如果來源網址不是*.baidu.com 3 RewriteCond %{HTTP_REFERER} !^$                                   //并且來源網址不是空 4 RewriteRule .*.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]     //如果訪問的文件后綴是jpeg,jpg,gif,bmp,png的圖片,則重定向到一個固定的圖片
復制代碼

然后我們下面根據這個例子依次展開說明:

    第一行:

RewriteEngine On|Off           //RewriteEngine 用于開啟或停用rewrite功能。

   第二行:

復制代碼
Rewritebase URL-path 
復制代碼

   第三行:

復制代碼
RewriteCond TestString CondPattern [flags] 
復制代碼
服務器變量NAME_OF_VARIABLE具體數值見下表:
復制代碼
HTTP_USER_AGENT //主要用于檢測訪問者系統和瀏覽器等 HTTP_REFERER //從哪個頁面鏈接過來  HTTP_cookie
HTTP_FORWARDED
HTTP_HOST //域名 HTTP_PROXY_ConNECTION
HTTP_ACCEPT                      
REMOTE_ADDR
REMOTE_HOST
REMOTE_USER
REMOTE_IDENT
REQUEST_METHOD
script_FILENAME
PATH_INFO
QUERY_STRING
AUTH_TYPE
document_ROOT
SERVER_ADMIN
SERVER_NAME
SERVER_ADDR
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE
TIME_YEAR
TIME_MON
TIME_DAY
TIME_HOUR
TIME_MIN
TIME_SEC
TIME_WDAY TIME API_VERSION //這是正在使用的httpd中(服務器和模塊之間內部接口)的Apache模塊API的版本, 其定義位于include/ap_mmn.h中。此模塊版本對應于正在使用的Apache的版本 (比如,在Apache 1.3.14的發行版中,這個值是19990320:10)。 通常,對它感興趣的是模塊的作者。 THE_REQUEST //這是由瀏覽器發送給服務器的完整的HTTP請求行。(比如, “GET /index.html HTTP/1.1″). 它不包含任何瀏覽器發送的附加頭信息。 REQUEST_URI //這是在HTTP請求行中所請求的資源。 REQUEST_FILENAME //這是與請求相匹配的完整的本地文件系統的文件路徑名或描述. IS_SUBREQ  //如果正在處理的請求是一個子請求,它包含字符串”true”,否則就是”false”。 模塊為了解析URI中的附加文件,有可能會產生子請求。
復制代碼

   flags

RewriteRule flag
RewriteRule標記 含 義 描 述
R Redirect 發出一個HTTP重定向
F Forbidden 禁止對URL地址的存取
G Gone 標記URL地址不存在
P Proxy 將URL地址傳遞給mod_proxy
L Last 停止處理接下來的規則
N Next 再次重第一個規則開始處理,但是使用當前重寫后的URL地址
C Chain 將當前的規則和緊隨其后的規則鏈接起來
T Type 強制執行指明的MIME類
NS Nosubreq 只在沒有任何內部子請求執行時運行本腳本
NC Nocase URL地址匹配對大小寫不敏感
QSA Qsappend 在新的URL地址后附加查詢字符串部分,而不是替代
PT Passthrough 將重寫后的URL地址傳遞給另一個Apache模塊進行進一步處理
S Skip 忽略之后的規則
E Env 設置環境變量
復制代碼
rewritecond的其他用法:
“-d”(目錄)
    將TestString視為一個路徑名并測試它是否為一個存在的目錄。
“-f”(常規文件)
    將TestString視為一個路徑名并測試它是否為一個存在的常規文件。
“-s”(非空的常規文件)
    將TestString視為一個路徑名并測試它是否為一個存在的、尺寸大于0的常規文件。
“-l”(符號連接)
    將TestString視為一個路徑名并測試它是否為一個存在的符號連接。
“-x”(可執行)
    將TestString視為一個路徑名并測試它是否為一個存在的、具有可執行權限的文件。該權限由操作系統檢測。
“-F”(對子請求存在的文件)
    檢查TestString是否為一個有效的文件,而且可以在服務器當前的訪問控制配置下被訪問。它使用一個內部子請求來做檢查,由于會降低服務器的性能,所以請謹慎使用!
“-U”(對子請求存在的URL)
    檢查TestString是否為一個有效的URL,而且可以在服務器當前的訪問控制配置下被訪問。它使用一個內部子請求來做檢查,由于會降低服務器的性能,所以請謹慎使用!
復制代碼

    第四行:

RewriteRule Pattern Substitution [Flags] 

五、更多使用舉例:

1、圖片重定向

RewriteEngine On
RewriteCond %{HTTP_HOST} ^localhost$ //如果域名是localhost RewriteCond %{REQUEST_FILENAME} !-f //并且訪問的文件找不到 RewriteRule ^images/(.+) http://127.0.0.1/test/showimages/$1 [R=302,L] //則跳轉到另一個域名下的另一個目錄訪問這個圖片

2、二級域名重定向到www.yourdomain.com

rewriteEngine on
rewriteCond %{http_host} ^yourdomain.com [NC]
rewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=301,L]

3、網站升級時,臨時錯誤頁面

RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$     //如果請求的地址不是maintenance.html
RewriteCond %{REMOTE_ADDR} !^123.123.123.123       //客戶端ip如果不是這個
RewriteRule $ /error.html [R=302,L]                //則重定向到error.html這個升級提醒頁面

4、重定向RSS地址到FeedSky

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !FeedSky [NC]
RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feed.feedsky.com/yours

5、防止目錄瀏覽:

Options All -Indexes

6、404重定向

Errordocument 404 /404.html

7、設置目錄默認頁面

DirectoryIndex about.html

 

備注:.htaccess的權限要設置成644


原文地址:http://www.qiye800.com/news/201902/06/qiye80043271.html
書海驛站-專注工程技術學習網站_論文資料標準分享網
企業800網 2021-12-05 19:02:03 網站說明網站簡介本網站經過多年收集、整理,國家規范、行業標準、地方規程、標準圖集30余萬條;建筑、電力、機械、食品、醫學、
陳峰何以至此?總是把因果掛在嘴邊,佛經成行動指南
企業800網 2021-09-25 17:17:38 《中國經濟周刊》記者 張燕海航集團有限公司董事長陳峰因涉嫌違法犯罪,被依法采取強制措施。9月24日晚,海航集團公布了這則消息
央行重磅定性!虛擬幣相關業務活動為非法金融活動,參與投資交易存在法律風險…境外交易所也被警告,比特幣聞聲跳水
企業800網 2021-09-25 17:16:22 央行重磅定性!虛擬幣相關業務活動為非法金融活動,參與投資交易存在法律風險…境外交易所也被警告,比特幣聞聲跳水 央行再次提
受賄超1.1億 貴州茅臺原董事長袁仁國被判無期徒刑
企業800網 2021-09-23 21:56:48 中新網9月23日電 據貴陽市中級人民法院官方微信消息,2021年9月23日上午,貴州省貴陽市中級人民法院一審公開宣判政協第十二屆貴
貪心廠長退休19年仍被查
企業800網 2021-09-23 21:55:40   中國紀檢監察報  作者:本報通訊員 謝世康 蘭貴彬  “從伸手私分拿錢那一刻起,自己就沒有過一天安心日子!面對冶煉廠老
歡度雙節 情暖環衛——輝南縣戲劇曲藝家協會廣場文化周暨慰問環衛工人專場演出
企業800網 2021-09-20 21:26:49 (本網記者裴德成王旭紅報道):“我是第一次觀看這樣的演出,還是特意為我們環衛工人表演的,真的太高興了!”輝南縣明日環境公司
微電影情滿山鄉 二《鄉村振興中的大學生》開機拍攝
企業800網 2021-09-15 06:41:17 (裴德成 霍文君攝影報道)9月10日,微電影《情滿山鄉》續集(2)《鄉村振興中的大學生》在輝南縣慶陽鎮“向榮耕讀人家”開機拍攝
織夢統計文章內容字數,dedecms調用正文字數的方法
企業800網 2021-09-12 12:59:06 許多站長使用dedecms,想在文章頁獲取文章正文詞數,但是dede系統默認設置是沒有文章字數統計功能模塊的,下面為大家分享dedecms
四大受歡迎的免費開源CMS建站系統
企業800網 2021-09-08 22:11:50 隨著互聯網應用開發技術的快速發展,各種用于快速制作網站的CMS網站內容管理系統層出不窮,現在,制作網站的成本和難度大大降低。
情系輝南山水 喜收愛徒在興——著名國畫家趙明仁先生收徒儀式
企業800網 2021-08-25 10:13:15 本網訊(裴德成 王東升)報道,8月21日,人民大會堂特聘畫家趙明仁先生在輝南縣西夾荒景區舉行收徒儀式,輝南縣西夾荒旅游公司總
著名作曲家楊柏森喜收愛徒-——著名作曲家楊柏森先生收徒儀式
企業800網 2021-08-25 10:07:53 本網訊(裴德成 王東升)報道,8月22日,著名作曲家楊柏森先生在輝南縣樣子哨鎮大煙筒屯臥龍潭景區舉行收徒儀式。高校學子陳振昂
免費開源cms自助建站系統大全,不會編程也可以自己建網站
企業800網 2021-08-16 09:33:20 想自己建網站又沒有網站編程基礎的小伙伴有福啦,本站整理了國內一些知名的,并且可以開源免費下載的cms自助建站系統程序,我們都
更多文章 進入論壇 我要發帖
Powered by 4435.cn 長春網站建設,業務咨詢:136-2446-7185
人妻出轨合集500篇最新㊣娇妻被生人粗大猛烈进出高潮㊣日本黄页网站免费大全1688㊣亚洲人成色777777在线观看