关于 Nginx 配置的一些疑惑, Nginx 根据cookie 进行rewrite

摘要:
Nginx将直接返回en。html根据cookie值lang=en根据lang=zh_Cn直接返回zh_Cn。htmllocation/{indexindex.php;if($http_cookie~*“lang=en”){rewrite^/$/en.html;}如果($http_cookie~*“lang=zh_cn”){rewrite^/$/zh_cn.html;

网站目录结构如下:
/public/en.html
/public/zh_cn.html
/public/index.php

之前所有的非静态资源请求都交给 index.php
现在要把首页的请求 不走PHP了,提高下网站性能。Nginx会根据cookie值 lang=en 直接返回en.html 根据 lang=zh_cn 直接返回 zh_cn.html。如果没有cookie的话,默认返回 zh_cn.html.
首页请求地址有3个,分别为: 

/index
/index/index 
求Nginx 配置。
现在的Ngxin配置如下:

location / {
    index  index.php;
    if ($http_cookie ~* "lang=en"){
        rewrite ^/$ /en.html;
        rewrite /index /en.html;
        rewrite /index/index /en.html;
    }   
    if ($http_cookie ~* "lang=zh_cn"){
        rewrite ^/$ /zh_cn.html;
        rewrite /index /zh_cn.html;
        rewrite /index/index /zh_cn.html;
    }   
    
    root    /www/wwwroot/public;
    try_files $uri $uri/ /index.php?q=$uri&$args;
}

  

但是不好使啊,网上说 location里,if 和 try_files同时使用会有问题,http://wiki.nginx.org/IfIsEvil
搞了一天了,还是没整好,好郁闷。感觉到了瓶颈了。

https://www.oschina.net/question/186778_226741

免责声明:文章转载自《关于 Nginx 配置的一些疑惑, Nginx 根据cookie 进行rewrite》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Visual Studio Code教程:基础使用和自定义设置C# 多线程控制控件实例下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

QEMU1.3.0的源码分析三:user model之linux

从源码目录来看,user model有两块内容bsd-user和linux-user。我主要研究了下linux-user这种情况。首先要提一下通常容易关注的焦点,linux-user下的函数入口点:/源码目录/linux-user/main.c中的Line:3388    int main(int argc, char **argv, char **env...

python 下载安装setuptools及pip应用

1、首先下载python安装程序,下载地址:https://www.python.org/download/releases/2.7.8/   如下图:     因为我的机器是32位的就选择了Windows x86 MSI Installer (2.7.8)   安装成功后 2、下载安装setuptools   具体办法:   进入页面:https://...

pipenv@python3.8 install tensorflow

    普通的pipenv install pipenv install tensorflow Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environme...

PEB及LDR链

PEB地址的取得在NT内核系统中fs寄存器指向TEB结构,TEB+0x30处指向PEB结构,PEB+0x0c处指向PEB_LDR_DATA结构,PEB_LDR_DATA+0x1c处存放一些指向动态链接库信息的链表地址,win7下第一个指向ntdl.dll,第三个就是kernel32.dll的。 typedef struct _TEB{ NT_TIB Tib...

ThinkPHP 6.0 管道模式与中间件的实现分析

设计模式六大原则 开放封闭原则:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 里氏替换原则:所有引用基类的地方必须能透明地使用其子类的对象. 依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 单一职责原则:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 接口隔离原则...

UI自动化自动验证登录滑动拼图验证码

用于UI自动化登录拼图滑动验证码 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Time : 2019/11/15 14:32 4 # @Site : 5 # @File : puzzleCaptcha.py 6 # @Software: PyCha...