天天看點

Rewrite重寫

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,如需轉載請自行聯系原作者

繼續閱讀