Mod rewrite 重定向子域,但仅在请求站点根目录时重定向

Mod rewrite 重定向子域,但仅在请求站点根目录时重定向,mod-rewrite,Mod Rewrite,我似乎找不到这个具体问题的答案: 如何转发http://play.domain.com——但不是http://play.domain.com/xxx 致: http://work.domain.com 其中“xxx”是任意字符串 换句话说,如果用户请求站点根目录,则重定向,否则停留在所选URL上 我试过了 RewriteEngine On RewriteCond %{HTTP_HOST} !work.domain.com [NC] RewriteRule ^(.*)$ http://work

我似乎找不到这个具体问题的答案:

如何转发
http://play.domain.com
——但不是
http://play.domain.com/xxx

致:
http://work.domain.com

其中“xxx”是任意字符串

换句话说,如果用户请求站点根目录,则重定向,否则停留在所选URL上

我试过了

RewriteEngine On 

RewriteCond %{HTTP_HOST} !work.domain.com [NC]
RewriteRule ^(.*)$ http://work.domain.com.com/$1 [R=301,L]
但它什么也没做:-/

试试:

RewriteEngine On 

RewriteCond %{HTTP_HOST} !work.domain.com [NC]
RewriteRule ^$ http://work.domain.com.com/ [R=301,L]

<> >仅重定向空白请求.< /p> 启用代码MODE Read和.HTAccess,通过<代码> HTTPD.CONF,然后将此代码放在<代码> .HTAccess < <代码>文档>根/代码>目录下:

# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^play\.domain\.com$ [NC]
RewriteRule ^/?$ http://work.domain.com/ [R=301,L]

除了“play”@JonLin,还有其他子域时中断。你确定吗?你不是想对阿努巴瓦的回答发表这一评论吗?@DjangoReinhardt:这可能不会影响你今天的表现,但将来如果你有另一个子域名
game.domain.com
这个规则甚至会将其重定向到
http://work.domain.com/
@djangorenhardt条件仅检查域是否不
work.domain.com
。这意味着如果有另一个子域名:
foo.domain.com
,它与play->work重定向是分开的,那么它也会被重定向,因为它不是
work.domain.com
@JonLin啊,我明白你的意思了。我的坏。您可以考虑将重写规则显示为<代码>改写器^ /?$https://work.domain.com [R=301,L](注意在匹配模式中添加了
/?
)。这将允许在apache conf和.htaccess上下文中使用该规则。另外,我建议从您的答案中删除选项配置,因为这与重写无关。@MikeBrant:同意,实施了您的两个建议。谢谢