0

我设法使用 htaccess 创建了一个基本规则集,以 301 重定向用户为 *.domain.com 键入的所有请求

所以所有: *.domain.com 请求重定向到 www.home.domain.com

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

现在我正在尝试修改它并使用 302 重定向所有最初没有 *.home.domain.com 但继续保持以前条件的请求

我已经阅读了一些回复,但我对正则表达式语法感到困惑,无法应用针对我的案例给出的类似回复。

更新:感谢乔恩林的回复,再澄清一点

一开始都是我的错,看了你的回复我就明白了

我都想要 :

*.home.domain.com >> 301 >> www.home.domain.com
not *.home.domain.com >> 302 >> www.google.com (for example)

更新 2:

这行得通吗?

RewriteCond %{HTTP_HOST} ^(.*)\.home\.domain\.com$ [NC]
RewriteCond $1 !^www\.$ [NC]
RewriteRule ^(.*)$ http://www.home.domain.com [R=301]

RewriteCond %{HTTP_HOST} !^(.*)\.home\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.google.com [L,R=302]
4

1 回答 1

0

尝试:

# all : *.domain.com requests redirect to www.home.domain.com
RewriteCond %{HTTP_HOST} ^[^.]+\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.home.domain.com/$1 [L,R=301]

# all requests that didn't have originally the *.home.domain.com
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.home.domain.com/$1 [L,R=302]
于 2012-10-02T21:20:35.060 回答