0

我正在一个有大约 5 或 6 个域的站点上工作,它们都指向同一个主机并且都显示同一个站点。我知道我真正应该做的是将每个域重定向到一个域,但客户端不希望这样做。

我需要重定向:

xyz.com/abc -> xyz.com/def
aaa.com/abc -> aaa.com/def
bbb.com/abc -> bbb.com/def

其中共同因素是将 abc 映射到 def。

目前我正在使用

Redirect /abc http://xyz.com/def

但这显然会从任何域重定向到 xyz.com,这不是我想要的。在不丢失当前域的情况下进行这些重定向的最简单/可靠的方法是什么?

干杯,约翰

4

3 回答 3

2

通过启用 mod_rewrite 和 .htaccess httpd.conf,然后将此代码放在您.htaccessDOCUMENT_ROOT目录下:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www\.)?(xyz|aaa|bbb)\.com$ [NC]
RewriteRule ^abc/?$ http://xyz.com/def [L,R=302,NC]

在您对规则工作正常感到满意后,将其更改302301将其标记为"permanent redirect".

于 2012-10-18T10:56:28.210 回答
0

怎么样:

Redirect /abc /def

这会保留发出请求的主机。

于 2012-10-18T20:27:11.713 回答
0

看起来我只需要使用像这样的普通重写规则:

RewriteRule ^science.*$ /applications/ [R=301,L]

= science/whatever -> /applications/
于 2012-10-19T13:49:24.790 回答