0

staging.domain.com должен перейти на домен.com/blog (последнее правило), но он отправляется на домен.com . Staging.domain.com/category/food следует перейти на домен.com/блог/категория/пищеваяПерепишите условие только с первого запуска

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^staging.domain.com/category [NC] 
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,NC] 

RewriteCond %{HTTP_HOST} ^staging.domain.com/work/ [NC] 
RewriteRule ^(.*)$ http://domain.com/#work [R=301,NC] 


RewriteCond %{HTTP_HOST} ^staging.domain.com [NC] 
RewriteRule ^(.*)$ http://domain.com/blog [R=301,NC] 

Как мне сделать несколько правил, или я их неправильно сцепления

ответ

1

переменная %{HTTP_HOST} содержит только HTTP request header. Часть URL недоступна для этой переменной. Поэтому правила должны быть изменены следующим образом:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^staging.domain.com$ [NC] 
RewriteRule ^((?!work/?).*)$ http://domain.com/blog/$1 [R=301,NC] 

RewriteCond %{HTTP_HOST} ^staging.domain.com$ [NC] 
RewriteCond %{REQUEST_URI} ^/work/? [NC] 
RewriteRule .* http://domain.com/#work [R=301,NC] 
Смежные вопросы