Rewrite重寫作用
1) 域名跳轉,web伺服器有多個域名時,将次域名重定向至主域名,用到重寫子產品rewrite_module
例如:www.360buy.com,跳轉到www.jd.com
2) 檔案跳轉,和域名相比,是透明的,隐藏實際目錄
例如:通路192.168.1.1/test,實際通路的是其他目錄(如主目錄下其他目錄test1或者其他虛拟主機網站目錄)
一、配置域名301跳轉
1. 編輯虛拟主機配置檔案/usr/local/apache2/conf/extra/httpd-vhosts.conf
<IfModule mod_rewrite.c>
RewriteEngine on
# 開啟 RewriteEngine引擎
RewriteCond %{HTTP_HOST} ^www.aaa.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.bbb.com$
# 重寫條件,如果比對到www.aaa.com,則指派給變量HTTP_HOST,比對其他不會指派,[OR]表示或的關系
RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L]
# 重寫規則,.*表示上面變量所有内容,301永久跳轉,L結束
</IfModule>
注:
上面幾行(2.4版本中),也可以單獨寫進.htaccess檔案中,條件:
1).htaccess檔案必須在aaa、bbb網站目錄下
2)浏覽器通路的内容,必須定義Drectory權限
3)FollowSymlinks 表示其該目錄通路其他目錄
4)開啟AllowOverride使.htaccess檔案生效
.htaccess檔案内容:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.aaa.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.bbb.com$
RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L]
配置檔案:
<Directory "/data/www">
Options Indexes FollowSymlinks
AllowOverride All
Allow from granted
</Directory>
二、配置檔案跳轉
說明:同樣道理,配置如下
1)定義Drectory權限
2)開啟AllowOverride
3)目錄下建立.htaccess檔案
4)在/data/www下建立index_test.html檔案
.htaccess檔案内容:
RewriteEngine on
RewriteRule abc index_test.html
配置檔案:
<Directory "/data/www">
在浏覽器輸入ip/abc,即可跳轉
擴充:
如一個不道德的人在他自己的網址A做一個302重定向到你的網址B,出于某種原因, Google搜尋結果所顯示的仍然是網址A,但是所用的網頁内容卻是你的網址B上的内容,這種情況就叫做網址URL劫持
本文轉自 huangzp168 51CTO部落格,原文連結:http://blog.51cto.com/huangzp/1906912,如需轉載請自行聯系原作者