我正在尝试将以 和 结尾的语言 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
(或de
或nl
) 到相同的 URL 路径,但带有lang=en
。如您的示例所示,/accommodation/hotel-room-1/?lang=da
重定向到/accommodation/hotel-room-1/?lang=en
。
反向$1
引用从请求的 URL 捕获 URL 路径。
请注意,最好先使用 302(临时)重定向进行测试,以避免缓存任何错误的重定向,并且只有当您确定它按预期工作时才更改为 301。