Nginx
Nginx + Wordpress 語言重定向
我目前正在嘗試使用用於語言支持的 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 }
這會導致“頁面未正確重定向”錯誤。
有關如何解決問題的任何提示?
謝謝。
這裡有一個問題:
rewrite ^ /$lang/ permanent;
您正在重寫每個請求,而不僅僅是對首頁的請求,因為每個請求都有一個開始。
有(至少)兩種方法可以解決這個問題。您可以使用:
- 僅重寫對首頁的請求。
rewrite ^/$ /$lang/ permanent;
location
使用僅與首頁匹配的特定內容:location = / { return 301 /$lang/; }