我目前正在尝试使用用于语言支持的Wordpress多站点来configurationNginx安装。
多站点configuration:mysite.com(未使用)mysite.com/it mysite.com/en
基本上我想添加一个默认的语言和redirect,如果我find英语。 该网站实际上是在Apache安装,所以我们使用:
RewriteCond %{HTTP:Accept-Language} ^en [NC] RewriteRule ^$ /en/ [L,R=301] RewriteRule ^$ /it/ [L,R=301]
为实际的redirect。
我试图用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 }
这导致“页面不正确redirect”错误。
有关如何解决问题的任何提示?
谢谢。
这是一个问题:
rewrite ^ /$lang/ permanent;
您正在重写每个请求,而不仅仅是请求到主页,因为每个请求都有一个开始。
有(至less)两种方法来解决这个问题。 你可以使用:
只重写主页的请求。
rewrite ^/$ /$lang/ permanent;
使用仅与主页匹配的特定location :
location = / { return 301 /$lang/; }