1

我有多个 TLD(domainX.com、domainY.net、...)指向同一个文件夹。在此文件夹中,我想添加一个 .htaccess 文件以将所有不是 domainY.com 的 www 和非 www URL 重定向到 domainY.com。

然而,这里有一个转折点。我有一些子域:alfa.domainY.com 和 beta.domainY.com 和 gamma.domainY.com 设置,在我的所有测试中都不断重定向到 domainY.com。

任何人都可以在这里给我一个成功的代码吗?

编辑:也许还要添加一些#Comments,我注意到这里的大多数答案都缺少这一点,我认为这意味着其中一些不能被重用,因为人们不知道他们在做什么。之后我也可以自己添加。

4

1 回答 1

1

尝试将这些规则添加到文档根目录的 htaccess 文件中:

RewriteEngine On
RewriteCond %{HTTP_HOST} !domainY\.net$ [NC]
RewriteRule ^(.*)$ http://domainY.net/$1 [L,R=301]

匹配主机的表达式对于任何alpha.domainY.net都将失败,因为它只匹配 TLD (.net) 和域 (domainY)。

第一行打开重写引擎。

第二行,条件,是应用于紧随其后的规则的真/假表达式。在这种情况下,它会检查请求的Host:标头,如果以 结尾 domainY.net,则条件失败,因为!前面的。

第三行是规则,URI 用于匹配^(.*)$基本上匹配所有内容的模式,并通过括号捕获。然后下一位是目标。如果规则匹配,因为模式匹配所有内容,则应用目标,在这种情况下,它将浏览器重定向到domainY.net并通过正则表达式反向引用传递相同的 URI $1

于 2013-08-30T20:47:55.067 回答