如何使用Apache将目录重定向到另一个域?

时间:2012-04-21 22:12:17

标签: apache redirect

我有一个Apache服务器,上面有两个域(通过VirtualHost) 文件设置如下:/example1/example2/
example1www.example1.com的根。example2 www.example2.comwww.example1.com/example2/<whatever else>的根。www.example2.com/<whatever else> 我希望{{1}}重定向到{{1}} 我可以访问主Apache配置文件。关于如何做到这一点的任何提示?我对配置Apache并不是很熟悉,因此非常感谢任何解释。

与此相关的其他问题缺乏解释,所以我觉得我必须发表自己的问题。

2 个答案:

答案 0 :(得分:5)

您可以使用.htaccess文件快速完成此操作。在www.example1.com/example2/中,您将创建此.htaccess文件。

<VirtualHost *:80>
    ...
    <Directory /path/to/vhost/>
      RewriteEngine on
      RewriteBase /example2/
      RewriteRule ^(.*)$ http://www.example2.com/$1 [R=301]
    </Directory>
</VirtualHost>

这确实假设您希望重定向为301,并且example2文件夹设置了AllowOverride All

此规则使用正则表达式捕获传入的URL,没有example2位,然后将其附加到重写的URL。方括号中的R告诉Apache使用Location头来重写URL。 =301告诉Apache使用301 Permanent Redirect标头。

答案 1 :(得分:2)

如果tou mod_alias处于活动状态,您可以使用Redirect指令:

<VirtualHost *:80>
    ServerName example1.com
    Redirect 301 /example2 http://www.example2.com
</VirtualHost>