-1

我有三个域,其中两个应该重定向到另一个。

www.example.com
www.example.net
www.example.org

我已经设置了 DNS 条目,以便它们都将转到相同的 IP 地址。

我希望将 .com 和 .net 网址永久重定向到 .org 地址。所以:

http://www.example.com -> http://www.example.org
http://www.example.net -> http://www.example.org
http://example.com -> http ://www.example.org
http://example.net -> http://www.example.org

在我的 .htaccess 文件中,我根据对http://httpd.apache.org/docs/2.2/rewrite/remapping.html#canonicalhost的最佳理解设置了以下配置

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.example.org$ [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/?(.*)$ http://www.example.org/$1 [L,R=301]

从理论上讲,应该发生的情况是对 HTTP_HOST不是www.example.org 的站点的任何请求,然后它应该永久重定向到http://www.example.org/ ,然后是 URL 上的任何原始路径.

我确信这很容易做到,我只是遗漏了一些明显的东西,但似乎所有其他问题和搜索结果都在谈论重定向子域和文件路径,但没有一个谈论重定向顶级域一个网址。

4

2 回答 2

1

这与我使用的几乎相同:

RewriteEngine on
RewriteCond  %{HTTP_HOST}   !^www.example.org$
RewriteRule ^/(.*)$ http://www.example.org/$1 [R=301,L]
于 2013-01-09T02:32:56.413 回答
0

事实证明我是在正确的轨道上。我的最终代码是这样的:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.example.org$ [NC]
RewriteRule ^(.*)$ http://www.example.org/$1 [L,R=301]

对我来说问题的根源是我的主机不知道我有多个域。因此,当请求在解决后进入站点时,主机会抛出一个页面,说在那里找不到站点。所以我将我的 example.com 和 example.net 站点添加到我的主机并将它们停放在 example.org。

也许其他人可以比我更好地解释这里发生的事情,但真正的问题不在于重写,而在于我的托管服务提供商。

于 2013-01-09T02:51:20.170 回答