0

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

问题是谷歌已经索引了我的一些测试环境页面,并且它们可以在谷歌结果中找到。我希望在访问 testing.xxx.com 时将除我的任何 IP 重定向到生产服务器 (xxx.com)。我宁愿这样做apache.conf.htaccess因为 git 存储库冲突)。是否可以将条件重定向添加到 apache 配置?

4

1 回答 1

1

您可以使用Apache 配置文件mod_rewrite中的功能: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>

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

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

于 2013-07-05T21:20:40.347 回答