Назад | Перейти на главную страницу

Несколько RewriteCond не работают

У меня в htaccess есть такие:

RewriteCond %{HTTP_HOST} !^foo
RewriteCond %{HTTP_HOST} !^bar
RewriteCond %{HTTP_HOST} !^some
RewriteRule ^register,(.*)$ /register.html [R=301,L]
RewriteRule ^offer,(.*)$ /offer.html [R=301,L]

Он перенаправляет меня, если я напишу http://foo.domain.com/register,one.html Я хочу это только на http://domain.com/register,one.html или http://www.domain.com/register,one.html

Что случилось?

В приведенном вами примере вы наверняка не будете перенаправлены.

Однако похоже, что вы ожидаете RewriteCond директивы, применяемые к обоим RewriteRule директивы - их нет. Они применимы только к RewriteRule что сразу следует за ними.

Итак, в вашем примере http://foo.domain.com/register,one.html воля не перенаправить вас - но http://foo.domain.com/offer,one.html воля.

Возможно, вам понадобится что-то еще в этом роде:

RewriteCond %{HTTP_HOST} !^(foo|bar|some)
RewriteRule ^register,(.*)$ /register.html [R=301,L]
RewriteCond %{HTTP_HOST} !^(foo|bar|some)
RewriteRule ^offer,(.*)$ /offer.html [R=301,L]