Apache/htaccess 中的紧凑重定向。如何实现?

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]

另外需要注意的是,您可以使用 [OR] 将多个 RewriteCond 组合为“或”条件,例如:

RewriteCond ... [OR]
RewriteCond ...
RewriteRule ...

相关内容