域名跳轉html
參數: Apache mod_rewrite 規則重寫 1) R[=code](force redirect) 強制外部重定向 說明:強制在替代字符串加上http://thishost[:thisport]/前綴重定向到外部的URL.若是code不指定,將用缺省的302 HTTP狀態碼。 2) F(force URL to be forbidden)禁用URL,返回403HTTP狀態碼。 3) G(force URL to be gone) 強制URL爲GONE,返回410HTTP狀態碼。 4) P(force proxy) 強制使用代理轉發。 5) L(last rule) 代表當前規則是最後一條規則,中止分析之後規則的重寫。 6) N(next round) 從新從第一條規則開始運行重寫過程。 7) C(chained with next rule) 與下一條規則關聯 8) T=MIME-type(force MIME type) 強制MIME類型 9) NS (used only if no internal sub-request) 只用於不是內部子請求 10) NC(no case) 不區分大小寫 11) QSA(query string append) 追加請求字符串 12) NE(no URI escaping of output) 不在輸出轉義特殊字符 說明:RewriteRule /foo/(.*) /bar?arg=P1%3d$1 [R,NE] 將能正確的將/foo/zoo轉換成/bar?arg=P1=zoo 13) PT(pass through to next handler) 傳遞給下一個處理 說明:RewriteRule ^/abc(.*) /def$1 [PT] # 將會交給/def規則處理Alias /def /ghi 14) S=num(skip next rule(s)) 跳過num條規則 15) E=VAR:VAL(set environment variable) 設置環境變量 16) OR 表明或者 注:若是規則匹配則正常處理,8)之後的標誌無效,若是不匹配,那麼下面全部關聯的規則都跳過。
格式: # 調用mod_rewrite.c模塊 <IfModule mod_rewrite.c> # 打開rewirte功能 RewriteEngine on # 聲明Client請求的主機中前綴不是www.client.cn RewriteCond %(HTTP_HOST) ^www.client.com$ # 含義是若是Client請求的主機中的前綴符合上述條件,則直接跳轉。 AuthType Basic ^(.*)$ http://www.server.com/$1 [R=301,L] </IfModule>
實例配置正則表達式
命令:apache2/bin/apachectl -M | grep rewrit rewrite_module (shared) 若是不存在:
# 編輯主配置文件,解註釋 vim httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so 注:若是沒有該模塊,則須要經過apxs工具安裝模塊。
二、修改虛擬主機配置文件apache
vim httpd-vhosts.conf # 1對1域名跳轉 <VirtualHost *:80> DocumentRoot "/usr/local/html" ServerName www.server.com ServerAlias www.aaa.com <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^www.aaa.com$ RewriteRule ^/(.*)$ http://www.server.com/$1 [R=301,L] </IfModule> <Directory /usr/local/html> require all granted </Directory> </VirtualHost> # 1對多域名跳轉 <VirtualHost *:80> DocumentRoot "/usr/local/html" ServerName www.server.com ServerAlias www.aaa.com ServerAlias www.bbb.com <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^www.aaa.com$ [OR] RewriteCond %{HTTP_HOST} ^www.bbb.com$ RewriteRule ^/(.*)$ http://www.server.com/$1 [R=301,L] </IfModule> <Directory /usr/local/html> require all granted </Directory> </VirtualHost>
注:跳轉狀態碼 301表明永久重定向 302臨時重定向 注:$1表明地址後跟的網絡文件。 注:訪問一個「/」能夠輸入如下格式。 RewriteCond %(HTTP_HOST) 456.com RewriteRule /(.*)$ HTTP://123.com/$1 [R=301,L]
三、從新讀取配置文件vim
apache2/bin/apachectl graceful