使用重写引擎将域路由到一个DocumentRoot上的path

我有两个域名:

domain1.com domain2.com 

我有一个Apache 2服务器,一个文件根/svr.

我想要发生以下情况:

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

我已经尝试在/svr,使用带有RewriteEngine的.htaccess ,在站点中使用VirtualHost声明 – 可用于每个主机名,并简单地使用301redirect。 不过,我不能使用简单的301,因为用户仍然应该在浏览器中看到domain1.com

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

我不能得到RewriteEngine将主机名路由到他们各自的端点,任何意见将不胜感激。 我目前正在尝试在服务器根目录下的.htaccess中使用HTTP_HOST ,但重写规则仍然没有生效。

Ilmiont

停止使用.htaccess和RewriteEngine,而是看看叫做“VirtualHost”的apache指令:

http://httpd.apache.org/docs/current/vhosts/name-based.html

这是他们解决的问题。 Apache会将传入的Host:头部与VirtualHost块中的ServerName指令相匹配,并从匹配的VirtualHost中应用configuration。 每个VirtualHost都可以有自己的DocumentRoot。

以下可以是解决scheme的骨架:

  <VirtualHost *:80> ServerName domain1.com DocumentRoot /svr/examplepath/thisisadir/param/domain1 # other configuration here </VirtualHost> <VirtualHost *:80> ServerName domain2.com DocumentRoot /svr/examplepath/thisisadir/param/domain2 # other configuration here </VirtualHost>