Apache 使用.htaccess控制“驻车”域

Apache 使用.htaccess控制“驻车”域,apache,.htaccess,mod-rewrite,subdomain,Apache,.htaccess,Mod Rewrite,Subdomain,我的问题是问,我想对.htaccess进行的域名控制水平是否可能,以及如何实现 这是目前的情况。目前,我有一个名为primary.com的主域,它有几种语言变体,文件结构如下 /lang/chinese /lang/russian 等等。我决定只为其中一个创建一个子域名,所以现在我有了china.primary.com。当然,我创建了一个.htaccess文件,使primary.com和www.primary.com的所有变体指向同一个位置www.primary.com,现在china.pri

我的问题是问,我想对.htaccess进行的域名控制水平是否可能,以及如何实现

这是目前的情况。目前,我有一个名为primary.com的主域,它有几种语言变体,文件结构如下

/lang/chinese
/lang/russian
等等。我决定只为其中一个创建一个子域名,所以现在我有了china.primary.com。当然,我创建了一个.htaccess文件,使primary.com和www.primary.com的所有变体指向同一个位置www.primary.com,现在china.primary.com指向www.primary.com/lang/chinese。一切正常

接下来,我添加了第二个域secondary.com,作为站点上的“停靠”域。与.htaccess有一点冲突,现在我对secondary.com任何版本的所有请求都被重写为对www.primary.com的调用。一切都好。然后是最后一个技巧,这是我问题的核心

虽然我现在有anything.secondary.com指向www.primary.com,但对于用户试图访问china.secondary.com的可能情况,是否可以添加一个例外?在这种情况下,我想把它改写成china.primary.com,并指向www.primary.com/lang/china。 注意:我没有创建子域名china.secondary.com,因为我的理解是它不应该是必要的。我认为这要么可以,要么不能通过.htaccess单独完成。请原谅我的经验:我的工作,但已被复制和粘贴在一起,作为一个网上找到各种例子的结果。这是我现在做得很好的东西——除了最后一行,我补充说,因为我希望它能解决这个问题,但它不起作用。 我真的需要创建一个子域名china.secondary.com才能工作吗?如果是这样的话,我的目标就泡汤了,因为我不能在一个停着的域名上创建一个子域名,我相信

Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^primary.com [NC]
RewriteRule ^(.*)$ http://www.primary.com$1 [L,R=301]
RedirectMatch 301 ^/lang/chinese/(.*)$ http://china.primary.com/$1


RewriteCond %{http_host} ^secondary\.com [nc]
RewriteRule ^(.*)$ http://www.primary.com/$1 [R=permanent,nc,L]
RedirectMatch 301 ^/lang/chinese/(.*)$ http://china.primary.com/$1

在阿努巴瓦的指引下,我进一步研究了这个问题。看来我的一个基本假设是不正确的。看起来您确实需要创建一个子域,以便使用.htaccess引导人们远离它。对我来说,这似乎与直觉大相径庭,但事实确实如此


当然,我无法在仅与托管公司驻车的域上创建子域,因此,尝试支持错误键入特定subdomain.parkeddomain.com的用户(他们打算在其中键入subdomain.maindomain.com),实际上是不可能的。我确实很惊讶,但我学到了一些有价值的东西。谢谢所有关注此事的人

.htaccess无法创建域。域必须首先注册并在VirtualHost中配置,所以我必须创建china.secondary.com,以便检测对它的请求并将其重定向到其他位置?这似乎是多余的,因为我不想任何人去那个子域。这真的是唯一的办法吗?