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

mod_rewrite для определенных доменов в файле сопоставлений

У меня есть несколько доменов, которые я хочу перейти в один домен, но в разные части этого домена.

# this is what I currently have
RewriteEngine On
RewriteCond %{HTTP_HOST} ^.*\.?foo\.com$ [NC]
RewriteRule ^.*$ ${domainmappings:www.foo.com} [L,R=301]

# rewrite map file
www.foo.com www.domain.com/domain/foo.com.php
www.bar.com www.domain.com/domain/bar.com.php
www.baz.com www.domain.com/other/baz.php.foo

Проблема в том, что я не хочу, чтобы каждый домен был частью RewriteCond. Я попытался

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

но это будет делать это для КАЖДОГО домена. Я хочу, чтобы перенаправлялись только те домены, которые находятся в файле сопоставлений, а затем продолжали выполнять другие перезаписи, если он не соответствует каким-либо доменам в файле сопоставлений.

Вы можете разыграть карту в условии и убедиться, что она не пуста, а затем захватить ее, чтобы не возвращаться к карте дважды:

RewriteCond $ {domainmappings:% {HTTP_HOST}) (. +) RewriteRule. *% 1 [L, R = 301]