htaccess和301重定向

时间:2012-07-04 17:05:52

标签: .htaccess

我想重定向

http://old.clients.domain.com

http://clients.domain.com

在htaccess文件中,我写了一个永久重定向

Redirect 301 / http://clients.domain.com

当我输入old.clients.domain.com时,它会在地址栏中将地址更改为clients.domain.com,但它不会给我页面,而是在Firefox中给我这个:

The page isn't redirecting properly

Firefox has detected that the server is redirecting the request for this address in a way that will never complete.

我做错了什么?谢谢。

3 个答案:

答案 0 :(得分:1)

这是什么?难怪在这里使用该示例的任何人都会收到内部服务器错误! = old.clients.domain.com 无效。

而不是

Rewritecond %{HTTP_HOST} =old.clients.domain.com

使用

Rewritecond %{HTTP_HOST} (www\.)?old.clients.domain\.com

所以正确代码的一个例子是

RewriteEngine On
RewriteBase /

Rewritecond %{HTTP_HOST} (www\.)?old.clients.domain\.com
RewriteRule ^.*$ http://new.clients.domain.com/$0 [R=301,L]

这可以在将根域重定向到插件域时起作用,并防止“Firefox检测到服务器以永远无法完成的方式重定向此地址的请求”等错误。

答案 1 :(得分:0)

我认为http://clients.domain.com/

也会返回301

您必须将.htaccess文件仅用于http://old.clients.domain.com/

的目录

答案 2 :(得分:0)

如果它们指向相同的根目录,那么最简单的方法是使用根.htaccess文件中的条件重写语句:

RewriteEngine On
RewriteBase   /

Rewritecond   %{HTTP_HOST} =old.clients.domain.com
RewriteRule   ^.*$         http://clients.domain.com/$0   [R=301,L]

您需要防护来防止重新定向有效clients.domain.com请求,而大多数浏览器(例如Ff)都会将其作为无限重定向接收。