htaccess 将根和子文件夹语言页面重定向到 /en

问题描述

我想使用 htaccess 将 www.domain.com/?lang=en 页面重定向到 www.domain.com/en/ 子文件夹。我已经尝试了下面的代码,但是我的 htaccess 规则没有考虑带有 www.domain.com/folder/?lang=enwww.domain.com/folder/subfolder/?lang=en 等子文件夹的 url。只有根页面从 ?lang=en 更新到 /en/。

  • (KO) domain.com/?lang=en > domain.com/en/

  • (KO) domain.com/folder/?lang=en > domain.com/en/folder/

  • (KO) domain.com/folder/folder2/?lang=en > domain.com/en/folder/folder2/

这是我迄今为止尝试过的:

# BEGIN LANGUAGE REDIRECTION
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{QUERY_STRING} lang=en
# exclude all requests starting with /wp-admin/
RewriteCond %{REQUEST_URI} !^/wp-admin/.*$
RewriteRule ^(.*) /en/$1? [L,R=301]
</IfModule>
# END LANGUAGE REDIRECTION

解决方法

根据您显示的示例,您能否尝试以下操作。请确保在测试 URL 之前清除浏览器缓存。这将重定向/重写并在您的 URI 之前添加语言 en(根据所示示例)。

RewriteEngine ON
RewriteCond %{QUERY_STRING} ^lang=(.*) [NC]
RewriteRule ^(.*)$ %1/$1 [R=301,NE,QSD,L]

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...