我设法用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但仍继续保留先前条件的请求
我已经阅读了一些回复,但我对正则表达式语法感到困惑,因为我的案例给出了类似的回复。
更新:感谢Jon Lin的回复,还有一个澄清
从一开始就是我的错,我在阅读你的回复时就理解了
我想要所有人:
*.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]
答案 0 :(得分: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]