【发布时间】:2013-01-04 06:39:51
【问题描述】:
好吧...我正在做一些有点奇怪和不寻常的事情。我会尽力解释...
我有几个域名指向我的网络服务器上的同一个根目录。我可以使用任何域名访问整个网站(我知道这对 SEO 不利,但这是有原因的)。此外,没有一个“页面”真正存在......因为它们都是动态构建的......所以我设置了一些 mod 重写规则以将所有传入查询指向 view.php 并传入变量以生成页面内容...无论如何...
我想要做的只是将我的两个域的主页设置为(不可见地)使用现有子页面的内容。这是一个例子:
这些都是同一个页面: www.domain1.com/process/ www.domain2.com/process/ www.domain3.com/process/ 这实际上是在做类似的事情:view.php?page=process/
我希望为 www.domain2.com 显示此页面(并且仍然可以通过 domain2.com/process 访问)
本质上,我想将站点的一个子页面用作 domain2.com 和 domain3.com 的“主页”页面,但如果 domain1.com 仍应使用默认 (index.php) 主页页面。
我确信一旦收到回复,我将需要对此进行澄清......但这是我目前所拥有的:
# special rules to set other domain names default homepage as specific internal page
RewriteCond %{HTTP_HOST} ^www.domain2.com [NC]
RewriteRule ^(.+)?$ /view.php?page=process/ [NC,L]
目前这会将所有到 domain2.com 的流量发送到“process/”页面......因此它会阻止所有其他页面。我需要知道如何让这个规则只适用于基本域,而不需要任何额外的查询字符串或 url 路径。关键是我不想影响域中的其他页面...所以我应该仍然能够使用此域名浏览整个站点...我只是从不同的视图开始。
【问题讨论】:
-
我想我正在寻找的是与“www.domain2.com”的LITERAL比较,而不是允许在此之后的字符被捕获并在规则中使用的正则表达式。
-
我也尝试过使用以下文字......它仍然匹配......但它匹配域中的所有 URL 并将它们全部发送到特殊的主页:RewriteCond %{HTTP_HOST } \Qwww.domain2.com\E [NC]
-
那么,您想从 domain2.com 中排除几个 URL 吗?
-
我希望仍然能够访问所有域中的所有页面......所以没有任何内容被排除......我正在尝试将某些域的主页路由到特定页面
-
假设您有 4 个域 d1.com、d2.com、d3.com 和 d4.com。在这 4 个中,d1.com 和 d2.com 的主页重定向到某个特定页面,并且 d3.com d4.com 保持原样。这就是你想要的吗?
标签: apache .htaccess mod-rewrite