You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Nginx配置,实现根据浏览器中文语言将https跳转至http?

Nginx等效Apache HTTPS按中文语言跳转HTTP配置方案

你可以直接在你现有的server配置块中添加以下规则,即可实现和Apache配置完全一致的效果:

新增配置代码

# 匹配HTTPS请求且浏览器语言为中文时跳转到HTTP
if ($https = 'on') {
    # ~* 代表不区分大小写匹配,等效Apache配置中的[NC]参数
    if ($http_accept_language ~* ^zh) {
        return 301 http://$host$request_uri;
    }
}

放置位置

将上述代码粘贴到你现有配置的#SSL-END注释下方即可,修改后的完整server块示例如下:

server
{
    listen 80;
    listen 443 ssl http2;
    listen 88;
    server_name mysite.com www.mysite.com;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/mysite.com;

    #SSL-START SSL related configuration, do NOT delete or modify the next line of commented-out 404 rules
    #error_page 404/404.html;
    ssl_certificate    /www/server/panel/vhost/cert/mysite.com/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/mysite.com/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=0";
    error_page 497  https://$host$request_uri;
    #SSL-END

    # 新增的跳转规则
    if ($https = 'on') {
        if ($http_accept_language ~* ^zh) {
            return 301 http://$host$request_uri;
        }
    }

    ......
}

生效操作

配置修改完成后,先执行以下命令测试配置语法是否正确:
nginx -t
提示syntax is ok后执行重载命令生效:
nginx -s reload

内容的提问来源于stack exchange,提问作者scott_ease

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 17:54:04