如何使用参数更正重定向URL并更改语言

时间:2019-06-04 19:15:41

标签: wordpress .htaccess mod-rewrite url-rewriting

我使用htacces文件正确重定向时遇到问题。我的网站有3种语言PL,EN和RU。主要语言是PL,它与ex兼容。 https://mypage.domain.pl/,如果我像这样添加参数语言https://mypage.domain.pl/?language=en,然后加载英语版本。

我需要这样的内容:如果我输入https://en.mypage.domain.pl/然后加载英语版本,如果我输入https://mypage.domain.pl/?language=en然后重定向到https://en.mypage.domain.pl/并加载英语版本。

我已在服务器上激活通配符。

这是最新版本,我尝试手动重定向

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Redirect 301 https://ru.dev.dobrestronyinternetowe.pl/ /?language=ru



</IfModule>
# END WordPress

# BEGIN LiteSpeed
<IfModule Litespeed>
SetEnv noabort 1
</IfModule>
# END LiteSpeed

编辑2

我做了点事,但它只能在50%的工作中将子域转换为参数

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^([^.]+)\.dev\.dobrestronyinternetowe\.pl$ [NC]
RewriteRule ^ http://dev.dobrestronyinternetowe.pl/?language=%1 [L,R]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>
# END WordPress

# BEGIN LiteSpeed
<IfModule Litespeed>
SetEnv noabort 1
</IfModule>
# END LiteSpeed

1 个答案:

答案 0 :(得分:0)

不确定什么不起作用,但可以重定向到 .domain,其中查询字符串包含language = ,您可以使用:

 RewriteCond %{QUERY_STRING} language=([^.]+) [NC]
 RewriteRule .* http://%1.dobrestronyinternetowe.pl/ [L,R]