我目前正在尝试使用用于语言支持的 Wordpress 多站点配置 Nginx 安装。
多站点配置:mysite.com(未使用)mysite.com/it mysite.com/en
基本上我想添加默认语言并在我找到英语时重定向。该站点实际上是在 Apache 安装上,因此我们使用:
RewriteCond %{HTTP:Accept-Language} ^en [NC]
RewriteRule ^$ /en/ [L,R=301]
RewriteRule ^$ /it/ [L,R=301]
用于实际重定向。
我正在尝试用 nginx 复制它,但没有任何运气。到目前为止,我补充说:
map $http_accept_language $lang {
default it;
~en en;
}
server {
listen 80;
server_name mysite.com;
access_log /var/log/nginx/logs/mysite-access.log ;
error_log /var/log/nginx/logs/mysite-error.log ;
location / {
root /var/www/html/mysite;
index index.php index.html;
try_files $uri $uri/ /index.php?$args;
rewrite ^ /$lang/ permanent;
}
#Other rules used by wordpress and plugins
}
这会导致“页面未正确重定向”错误。
有关如何解决问题的任何提示?
谢谢。
这里有一个问题:
您正在重写每个请求,而不仅仅是对主页的请求,因为每个请求都有一个开始。
有(至少)两种方法可以解决这个问题。您可以使用:
仅重写对主页的请求。
location
使用仅与主页匹配的特定内容: