如何将域重写到子文件夹

时间:2013-07-22 13:42:30

标签: redirect apache2

我有一个名为server1的本地服务器,其子目录sub(server1 / sub /)。 现在我有一个dns条目,它将server2重定向到server1。

我想以一种方式配置我的apacher服务器,当我在浏览器中打开server2时,我从server1 / sub /获得内容。

网址不应更改为server1 / sub /.

这可以用mod_rewrite吗?

编辑: 我添加了

127.0.0.1       localhost
127.0.0.1       wiki2
127.0.0.1       wiki3

到hosts文件和

VirtualHost 127.0.0.1>
  ServerName wiki2
  ServerAlias 127.0.0.1
  DocumentRoot c:/xampp/htdocs/wiki_angua

  <Directory c:/xampp/htdocs/wiki_angua >
     Allow From All
  </Directory>

</VirtualHost>

<VirtualHost 127.0.0.1>
  ServerName wiki3
  ServerAlias 127.0.0.1
  DocumentRoot c:/xampp/htdocs/weatherwax

  <Directory c:/xampp/htdocs/weatherwax >
     Allow From All
  </Directory>

</VirtualHost>

到httpd.conf并重启apache。 无论我打开wiki2还是wiki3,我都会登陆./wiki_angua。 我有什么遗忘的吗?

1 个答案:

答案 0 :(得分:2)

如果您有server2的DNS条目,那么Host HTTP请求标头将被正确设置,您只需要一个虚拟主机,而无需使用mod_rewrite。

例如:

<VirtualHost *:80>
  ServerName server2

  DocumentRoot /path/to/server1/sub

  <Directory /path/to/server1/sub>
     Allow From All
  </Directory>
  # ... etc
</VirtualHost>

修改

如果您仍想使用mod_rewrite,您可以执行以下操作:

RewriteCond   %{HTTP_HOST}                 ^server2$
RewriteRule   ^(.+)                        /path/to/server1/sub/$1

这必须位于全局服务器配置中,而不是现有的虚拟主机中。