【问题标题】:How to rewrite a domain to a subfolder如何将域重写到子文件夹
【发布时间】:2013-07-23 15:41:37
【问题描述】:

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

我想配置我的 apacher 服务器,当我在浏览器中打开 server2 时,我会从 server1/sub/ 获取内容。

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

mod_rewrite 可以做到吗?

编辑: 我加了

127.0.0.1       localhost
127.0.0.1       wiki2
127.0.0.1       wiki3

到主机文件和

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。 有什么我忘记了吗?

【问题讨论】:

  • 您的 DNS 重定向是如何工作的?它是服务器 IP 的正确 DNS 记录,还是其他重定向方案?根据这个细节,答案可能会有很大差异。
  • 这是一个正确的 dns 记录

标签: redirect apache2


【解决方案1】:

如果您有一个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

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

【讨论】:

  • 出于测试原因:是否可以说 server2 是 localhost 而 127.0.0.1 是 server1
  • 你能告诉我如何用 mod_rewrite 处理这个问题(我很感兴趣;))
  • 嗯,是的,这是可能的,虽然更复杂,我见过这样的例子,但是根本不应该使用基于名称的虚拟主机,我会尽快进行编辑。跨度>
  • 首先非常感谢您的帮助。我编辑了我的问题,因为我在本地测试时遇到了问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-30
  • 2012-11-20
  • 2021-11-22
  • 2023-03-27
  • 1970-01-01
  • 2011-03-02
  • 2017-12-24
相关资源
最近更新 更多