重写条件仅运行第一个



staging.domain.com 应该转到 domain.com/blog(最后一个规则),但它转到 domain.comstaging.domain.com/category/food 应该去 domain.com/blog/category/food

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]

如何制定多个规则,还是将它们链接错误

变量%{HTTP_HOST}仅包含 HTTP 请求标头。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]

最新更新