Компактные перенаправления в Apache/htaccess. Как? [Элегантный вопрос кодирования]

При настройке перенаправлений в htaccess у меня возникают проблемы при настройке / объединении различных доменов, когда все они переходят на одну домашнюю страницу. Я могу сделать их отдельно, но это не аккуратно / элегантно. Как переписать третий абзац, чтобы он работал?

RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{HTTP_HOST} ^website.de$    // works fine
RewriteRule ^$ de/home [R=301,L]

RewriteCond %{HTTP_HOST} ^website.fr$    // works fine
RewriteRule ^$ fr/home [R=301,L]

RewriteCond %{HTTP_HOST} ^website.com$    // doesnt work well
RewriteCond %{HTTP_HOST} ^website.org$    // doesnt work well
RewriteCond %{HTTP_HOST} ^website.net$    // doesnt work well
RewriteRule ^$ en/home [R=301,L]

1 ответ

Решение
RewriteCond %{HTTP_HOST} ^website\.(com|org|net)$
RewriteRule ^$ en/home [R=301,L]

Также лучший способ написания их всех:

RewriteCond %{HTTP_HOST} ^website\.(fr|de)$
RewriteRule ^$ %1/home [R=301,L]

RewriteCond %{HTTP_HOST} ^website\.(com|org|net)$
RewriteRule ^$ en/home [R=301,L]

Просто для другого примечания, вы можете объединить несколько RewriteCond как 'или' условия, используя [ИЛИ], например:

RewriteCond ... [OR]
RewriteCond ...
RewriteRule ...
Другие вопросы по тегам