Kneops Asked: 2020-06-13 00:26:01 +0800 CST2020-06-13 00:26:01 +0800 CST 2020-06-13 00:26:01 +0800 CST 将不同语言的网址重定向到 htaccess 中的英文对应网址 772 我正在尝试将以/?lang=da,结尾/?lang=de的语言 URL 重定向/?lang=nl到相同的 URL 但以/?lang=en. 所以 www.example.com/accommodation/hotel-room-1/?lang=da 应该导致 www.example.com/accommodation/hotel-room-1/?lang=en 等等 有没有办法为此使用通配符? wildcards .htaccess redirect language 1 个回答 Voted Best Answer MrWhite 2020-06-13T03:43:17+08:002020-06-13T03:43:17+08:00 如果这些语言版本不再存在,那么您可以在根.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. 反向引用从请求的 URL中$1捕获 URL 路径。 请注意,最好先使用 302(临时)重定向进行测试,以避免缓存任何错误的重定向,并且只有在您确定它按预期工作时才更改为 301。
如果这些语言版本不再存在,那么您可以在根
.htaccess
文件中使用 mod_rewrite 实现重定向。例如,在
.htaccess
文件顶部附近尝试以下操作:此 301 重定向
/<anything>?lang=da
(或de
或nl
)到相同的 URL 路径,但带有lang=en
. 与您的示例一样,/accommodation/hotel-room-1/?lang=da
重定向到/accommodation/hotel-room-1/?lang=en
.反向引用从请求的 URL中
$1
捕获 URL 路径。请注意,最好先使用 302(临时)重定向进行测试,以避免缓存任何错误的重定向,并且只有在您确定它按预期工作时才更改为 301。