我有两个域:
domain1.com
domain2.com
我有一台 Apache 2 服务器,带有一个文档根目录/svr.
我希望发生以下情况:
domain1.com
相当于/svr/examplepath/thisisadir/param/domain1
domain2.com
相当于/svr/examplepath/thisisadir/param/domain2
我尝试过使用.htaccess
RewriteEngine,在/svr,
每个主机名的可用站点中使用 VirtualHost 声明,并简单地使用 301 重定向。但是,我不能使用简单的 301,因为用户仍应domain1.com
在其浏览器中看到。
即domain1.com/about-this-site
应该映射到/svr/examplepath/thisisadir/param/domain1/about-this-site.
我无法让 RewriteEngine 将主机名路由到其各自的端点,任何建议都将不胜感激。我目前正在尝试HTTP_HOST
在.htaccess
服务器根目录中使用,但重写规则仍然没有生效。
伊尔米翁特
答案1
停止使用 .htaccess 和 RewriteEngine,而是查看名为“VirtualHost”的 apache 指令:
http://httpd.apache.org/docs/current/vhosts/name-based.html
这是他们要解决的问题。Apache 会将传入的 Host: 标头与 VirtualHost 块中的 ServerName 指令进行匹配,并应用匹配 VirtualHost 的配置。每个 VirtualHost 都可以有自己的 DocumentRoot。
以下可以作为解决方案的骨架:
<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>