Компактные перенаправления в 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 ...