【问题标题】:Apache Virtualhost Directory conditional redirectApache Virtualhost 目录条件重定向
【发布时间】:2013-07-05 21:04:27
【问题描述】:

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

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

【问题讨论】:

    标签: apache http-redirect virtual-server


    【解决方案1】:

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

    <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 配置文件的 &lt;Directory&gt; 部分。

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

    【讨论】:

      猜你喜欢
      • 2017-02-17
      • 2022-01-09
      • 2017-07-21
      • 2019-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-21
      • 2015-12-26
      相关资源
      最近更新 更多