zoukankan      html  css  js  c++  java
  • Nginx URL重写rewrite配置及信息详解【转】

    和apache等web服务软件一样,rewrite的组要功能是实现RUL地址的重定向。Nginx的rewrite功能需要PCRE软件的支持,即通过perl兼容正则表达式语句进行规则匹配的。默认参数编译nginx就会支持rewrite的模块,但是也必须要PCRE的支持

    rewrite是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到replacement,结尾是flag标记。

    rewrite语法格式及参数语法说明如下:

    rewrite语法规则:    rewrite            [flag];
    
        regex正则:perl兼容正则表达式语句进行规则匹配
    
        replacement替代内容:将正则匹配的内容替换成replacement
    
        flag标记:rewrite支持的flag标记
    
    flag标记说明:
    
    last  #本条规则匹配完成后,继续向下匹配新的location URI规则
    
    break  #本条规则匹配完成即终止,不再匹配后面的任何规则
    
    redirect  #返回302临时重定向,浏览器地址会显示跳转后的URL地址
    
    permanent  #返回301永久重定向,浏览器地址栏会显示跳转后的URL地址
    

    rewrite参数的标签段位置:

    server,location,if

    配置实例

    实例1 : 将http访问强制跳转到https地址

    修改/etc/nginx/nginx.conf文件:

        server {
            listen       80 default_server;
            listen       [::]:80 default_server;
            server_name  www.learnhard.cn;
            root         /www/blog/;
    
            rewrite ^(.*)$  https://$host$1 permanent;
    
            # Load configuration files for the default server block.
            include /etc/nginx/default.d/*.conf;

    增加了一行:rewrite ^(.*)$ https://$host$1 permanent;

    • 正则匹配内容是任何访问路径。
    • 替代内容 为https://$host$1
    • flag标记为 permanent, 表示返回301永久重定向。

    重启nginx服务后验证一下,访问 http://www.abc.com 会强制跳转到 https://www.abc.com
    当然,如果你想要跳转到其他的地址也可以替换$host变量即可。

    实例2 : 伪静态页面规则配置,利于搜索引擎推荐

    修改/etc/nginx/nginx.conf文件:

            location /{
                index index.php index.html index.htm;
    
                # 设置伪静态页面规则 #
                if (-f $request_filename/.html){
                    rewrite (.*) $1/.html break;
                }
                if (-f $request_filename/index.php){
                    rewrite (.*) $1/index.php;
                }
                if (!-f $request_filename){
                    rewrite (.*) /index.php;
                }
            }

    转自

    Nginx URL重写rewrite配置及信息详解 - 悟空的修炼笔记
    https://www.learnhard.cn/articles/116.html

  • 相关阅读:
    二分查找binarySearch
    快速排序quicksort实现方法
    读书清单
    windows 下遍历文件夹
    如何输出 android.mk 及 Application.mk 中个变量的值
    【转】 armeabi与armeabi-v7a
    Application.mk
    【转】TypeError: 'module' object is not callable 原因分析
    User breakpoint called from code at XXX的解决方式记录
    关于溢出的一些体会
  • 原文地址:https://www.cnblogs.com/paul8339/p/15770284.html
Copyright © 2011-2022 走看看