apache域名跳轉

域名跳轉總結

當我們變更網站域名,或者申請多個域名指向一個網站的時候,這個時候我們就會用到域名跳轉(或者叫域名重定向redirect、域名轉向)。

域名跳轉試驗

[root@chy ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName www.111.com
    ServerAlias www.exaple.com
    #<Directory /data/wwwroot/111.com>
     #<filesMatch 123.php>
      #AllowOverride AuthConfig
      #AuthName "111.com user auth"
        #AuthType Basic
       # AuthUserFile /data/.htpasswd
      #  require valid-user
     # </FilesMatch>
      #</Directory>
     <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} !^www.123.com$
        RewriteRule ^/(.*)$ http://www.123.com/$1 [R=301,L]
</IfModule>
    #ErrorLog "logs/dummy-host2.example.com-error_log"
    #CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>
(以上是配置,以下是具體的配置說明:
<IfModule mod_rewrite.c> //需要mod_rewrite模塊支持
        RewriteEngine on  //打開rewrite功能
        RewriteCond %{HTTP_HOST} !^www.111.com$  //定義rewrite的條件,主機名(域名)不是www.111.com滿足條件
        RewriteRule ^/(.*)$ http://www.111.com/$1 [R=301,L] //定義rewrite規則,當滿足上面的條件時,這條規則纔會執行,其中301是永久跳轉,302是隻跳轉一次。L的意思是跳轉一次後就結束
</IfModule>
[root@chy ~]# /usr/local/apache2.4/bin/apachectl -M |grep rewrite
(查看是否加載了模塊)
[root@chy ~]# vi /usr/local/apache2.4/conf/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so
(在主配置文件裏面找到rewrite_module模塊將#號去掉,然後在查看是否有模塊)
[root@chy ~]# curl -x127.0.0.1:80 222.com -I
HTTP/1.1 301 Moved Permanently
Date: Sun, 30 Jul 2017 23:17:17 GMT
Server: Apache/2.4.27 (Unix) PHP/7.1.6
Location: http://111.com/
Content-Type: text/html; charset=iso-8859-1
(測試域名跳轉成功)

以上測試是在centos7系統下完成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章