Apache Virtualhost目录条件重定向

时间:2013-07-05 21:04:27

标签: apache http-redirect virtual-server

我刚创建了一个网站,其中包含两个环境作为虚拟服务器 - 测试和生产。由于生产服务器对所有人开放,但我只允许我的IP访问测试环境:

<VirtualHost *:80>
    DocumentRoot /home/xxx/www
    ServerName testing.xxx.com
    <Directory /home/xxx/www>
        Order deny, allow
        Deny from all
        Allow from xxx.xxx.xxx.xxx
    </Directory>
</VirtualHost>

问题是谷歌已经将我的一些测试环境页面编入索引,并且它们在谷歌搜索结果中可用。我想要任何IP,但是在访问testing.xxx.com时我会被重定向到生产服务器(xxx.com)。我宁愿使用apache.conf而不是.htaccess(由于git存储库冲突)。是否可以将条件重定向添加到apache config?

1 个答案:

答案 0 :(得分:1)

您可以在mod_rewrite Apache配置文件中使用httpd.conf功能:

<IfModule mod_rewrite.c>

Options +FollowSymLinks
RewriteEngine on

RewriteCond %{REMOTE_HOST} !^123\.456\.788 [OR] # exclude your first IP
RewriteCond %{REMOTE_HOST} !^123\.456\.789 # exclude your second IP
RewriteRule ^(.*)$ http://production-env.com/$1 [R=301,L] # redirection to production site

</IfModule>

或者您可以将这些声明放入vhosts配置文件的<Directory>部分。

通常,您可以利用mod_rewrite模块来管理Web服务器的URL路由策略。在使用之前,请确保在Apache中安装并激活此模块。