【问题标题】:Apache httpd.conf - Link multiple domains to corresponding subfoldersApache httpd.conf - 将多个域链接到相应的子文件夹
【发布时间】:2015-04-26 04:03:02
【问题描述】:

我需要一个规则来内部重写几个域,有和没有 www:

www.a.com --> /m/n/o/
b.c.org --> /x/y/z/

设置是在 Windows (XAMPP) 上本地运行的 Apache。我已经设置了主机文件,因此所有域都指向本地主机。我希望每个页面都被重定向,即我想将每个域指向它自己不同的根目录并让它从那里正常工作。例如

/                          <-- Top level folder, everything is under here.
   /root/of/domain/A/      <-- www.a.com
   /root/of/domain/C/      <-- b.c.org

【问题讨论】:

  • 您需要提供更多信息。两个域a.comc.org 是否都指向同一个服务器?你想只重定向根页面还是每个页面?

标签: apache mod-rewrite


【解决方案1】:

你有两个选择。

(1) 你问的那个(with mod_rewrite

<IfModule mod_rewrite.c>
  RewriteEngine On

  RewriteCond %{HTTP_HOST} ^(?:www\.)?a\.com$ [NC]
  RewriteRule ^/(.*)$ /root/of/domain/A/$1 [L]

  RewriteCond %{HTTP_HOST} ^b\.c\.org$ [NC]
  RewriteRule ^/(.*)$ /root/of/domain/C/$1 [L]
</IfModule>

注意:不要忘记用真实值替换示例值。另外,请确保 mod_rewrite 已启用。

(2) 最简洁的方式:直接配置虚拟主机(无需 mod_rewrite

NameVirtualHost *:80

<VirtualHost *:80>
  DocumentRoot "X:/path/to/root/of/domain/A/"
  ServerName a.com
  ServerAlias www.a.com
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot "X:/path/to/root/of/domain/C/"
  ServerName b.c.org
</VirtualHost>

【讨论】:

    猜你喜欢
    • 2012-07-16
    • 1970-01-01
    • 2013-02-04
    • 2012-12-09
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-24
    相关资源
    最近更新 更多