Apache2将域重定向到内部页面

时间:2015-09-01 16:31:27

标签: apache .htaccess redirect reverse-proxy mod-proxy

我有两个域指向由apache2托管的网站(例如a.com和b.com)。主域名是a.com,可以从该域访问该网站。

但是,页面a.com/test/应重定向到b.com(而不是b.com/test/)以显示来自服务器的内容,如果直接访问b.com,也应显示此内容。

我认为反向代理可能是要走的路,但没有运气,我想知道这是否可以在我的.htaccess文件中进行(两个域都指向服务器)。

1 个答案:

答案 0 :(得分:1)

您不应该需要反向代理。只要a.com和b.com的DNS指向同一个apache服务器,就可以通过使用vhosts和重定向来设置它。

对于b.com vhost,只需将其设为DocumentRoot测试文件夹(完整路径)即可。如果那不可能,您也可以通过htaccess执行此操作。

对于重定向,请将其添加到a.com的文档根目录中的htaccess文件中:

RewriteEngine On
RewriteCond %{HTTP_HOST} a\.com$ [NC]
RewriteRule ^test/(.*)$ http://b.com/$1 [L,R=301]

如果您无法在vhost中设置DocumentRoot,则可以使用b.com

RewriteCond %{HTTP_HOST} b\.com$ [NC]
RewriteCond $1 !^test/
RewriteRule ^(.*)$ /test/$1 [L]