使用.htaccess来控制“停放的”域名

时间:2015-02-16 14:15:32

标签: 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.primary.com也指向www.primary.com /郎/中国人。一切都运作良好。

接下来,我添加了第二个域名(secondary.com)作为停放的'网站上的域名。与.htaccess进行一场小小的斗争,现在我已经将所有版本的secondary.com的请求重写为对www.primary.com的调用。都好。然后是最后的技巧,这是我问题的核心。

虽然我现在有任何.secondary.com指向www.primary.com,是否可以为用户尝试访问china.secondary.com的可能情况添加例外?在那种情况下,我想把它改写成china.primary.com并指向www.primary.com/lang/china。 注意我还没有创建子域china.secondary.com,因为我的理解是它不应该是必要的。我认为这可以或不可以通过.htaccess单独完成。请原谅我的iinexperience:我有什么作品,但一直是副本&通过在线查找各种示例粘贴在一起。这就是我现在运作良好的东西 - 除了最后一行我补充说,因为我希望它能解决这个问题,但它不起作用。 我是否真的必须创建一个子域名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

1 个答案:

答案 0 :(得分:0)

Anubhava指导正确的方向我更加研究了这个问题。似乎我的一个基本假设是不正确的。看起来你需要创建一个子域名,以便通过.htaccess引导人们远离它。对我来说似乎非常违反直觉,但确实如此。

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