使用重写引擎将多个域路由到一台服务器上的不同路径

时间:2016-09-11 21:11:23

标签: apache mod-rewrite apache2

我有两个域名:

domain1.com
domain2.com

我有一台Apache 2服务器,文档根目录为/svr.

我希望发生以下情况:

  • domain1.com路由到相当于/svr/examplepath/thisisadir/param/domain1
  • 的路由
  • domain2.com路由到相当于/svr/examplepath/thisisadir/param/domain2
  • 的路由

我尝试在.htaccess中使用/svr,使用RewriteEngine,在站点中使用VirtualHost声明 - 可用于每个主机名,只使用301重定向。但是,我不能使用简单的301,因为用户仍应在浏览器中看到domain1.com

即。 domain1.com/about-this-site应映射到/svr/examplepath/thisisadir/param/domain1/about-this-site.

我无法让RewriteEngine将主机名路由到各自的端​​点,任何建议都会非常感激。我目前正在尝试在服务器根目录中的HTTP_HOST中使用.htaccess,但重写规则仍然没有生效。

Ilmiont

1 个答案:

答案 0 :(得分:1)

DocumentRoot指令设置httpd将从中提供文件的目录,并且在< VirtualHost>中允许使用该目录。 Context,因此您可以在.conf文件中执行以下操作:

<VirtualHost *:80>
  ServerName domain1.example.com
  DocumentRoot /svr/examplepath/thisisadir/param/domain1
  ...
</VirtualHost>

<VirtualHost *:80>
  ServerName domain2.example.com
  DocumentRoot /svr/examplepath/thisisadir/param/domain2
  ...
</VirtualHost>