尝试编写.htaccess,重写URL而不重定向

时间:2012-12-28 18:01:49

标签: apache .htaccess

好的,所以我为这个客户端提供了6个域名 - 所有这些域名都需要指向一个主域名,为了争论,www.abc.com

然而,托管和帐户是在www.xyz.com下设置的。

所以基本上我想将所有域名重定向到xyz.com(我已经完成),然后将xyz.com的URL重写为abc.com(在完全不同的主机上)

我如何在.htaccess中执行此操作?

我尝试将其放入空白文件中,它只给了我一个500内部服务器错误:

RewriteCond Host: www\.abc\.com
RewriteProxy (.+) http\://www.xyz.com$1 [I,U] 

我这样做了吗?为什么不起作用?

1 个答案:

答案 0 :(得分:0)

您的第一步应该是在DNS级别对此进行攻击。利用DNS使所有域都指向您要处理请求的单个服务器。这可以防止您需要维护除了重定向到其他服务器之外什么都不做的服务器。

然后,您可以使用Apache重定向来重写域名。

这样做:

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

这将重定向所有未使用指定域名的服务器请求重写到正确的域名。请注意R=301标志的使用,这将表明这是一个永久的重定位,这应该有助于域的搜索索引。