我在一个网站上工作,有大约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,这不是我想要的。在不丢失当前域的情况下执行这些重定向的最简单/可靠的方法是什么?
干杯,约翰
发布于 2012-10-18 18:56:28
通过httpd.conf
启用mod_rewrite和.htaccess,然后将以下代码放入DOCUMENT_ROOT
目录下的.htaccess
中:
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]
在您对规则正常工作感到满意之后,将302
更改为301
,将其标记为"permanent redirect"
。
发布于 2012-10-19 04:27:12
这样如何:
Redirect /abc /def
这将保留请求所针对的主机。
发布于 2012-10-19 21:49:25
看起来我只需要使用像这样的普通重写规则:
RewriteRule ^science.*$ /applications/ [R=301,L]
= science/whatever -> /applications/
https://stackoverflow.com/questions/12952367
复制相似问题