上一篇文章写到使用 apache geoip模块实现域名下级目录跳转,他是对全局生效的,但是我的虚拟主机下有其他的虚拟主机,如果按照上一篇文章的配置,那些不需要做二级跳转的网站将不能正常访问。以下配置只针对需要做下级目录跳转的网站生效:具体做法是只改需要做跳转的虚拟主机配置文件,

cd /etc/httpd/conf.d

vim cn-en.conf

#NameVirtualHost *
<VirtualHost *:80>
DocumentRoot /var/www/html/
ServerName www.ruizengguoji.com
LoadModule geoip_module modules/mod_geoip.so
<IfModule mod_geoip.c>
GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat
RewriteEngine on
        RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^CN$
        RewriteCond %{HTTP_HOST} ^www.a.com [NC]
        RewriteRule ^/$ /cn/index.html [R=301,L]
RewriteEngine on
        RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(CA|US|MX)$
        RewriteCond %{HTTP_HOST} ^www.a.com [NC]
        RewriteRule ^/$ /en/index.html [R=301,L]
</IfModule>
</VirtualHost>

这时如果我的虚拟主机目录下有其他的网站,将不会受到上面两个网站的影响。

测试其他网站是否可用:

cd /etc/httpd/conf.d

vim bbs.conf

#NameVirtualHost *
<VirtualHost *:80>
DocumentRoot /var/www/html/bbs
ServerName bbs.a.com
</VirtualHost>

echo bbs > /var/www/html/bbs/index.html

在浏览器测试ok通过。