在 htaccess 中将不同语言的 URL 重定向到相应的英语 URL

在 htaccess 中将不同语言的 URL 重定向到相应的英语 URL

我正在尝试将以 和 结尾的语言 URL 重定向/?lang=da/?lang=de/?lang=nl结尾的相同 URL /?lang=en

所以

www.example.com/accommodation/hotel-room-1/?lang=da

应该导致

www.example.com/accommodation/hotel-room-1/?lang=en

ETC。

有没有办法使用通配符来实现这一点?

答案1

如果这些语言版本不再存在,那么您可以在根.htaccess文件中使用 mod_rewrite 实现重定向。

例如,在文件顶部附近.htaccess尝试以下内容:

RewriteEngine On

RewriteCond %{QUERY_STRING} ^lang=(da|de|nl)$
RewriteRule (.*) /$1?lang=en [R=301,L]

此 301 重定向/<anything>?lang=da(或denl) 到相同的 URL 路径,但带有lang=en。如您的示例所示,/accommodation/hotel-room-1/?lang=da重定向到/accommodation/hotel-room-1/?lang=en

反向$1引用从请求的 URL 捕获 URL 路径。

请注意,最好先使用 302(临时)重定向进行测试,以避免缓存任何错误的重定向,并且只有当您确定它按预期工作时才更改为 301。

相关内容