账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    nginx location rewrite 优化
    • 维姐,不接语音请打字2020-01-01 00:00
    • 10
    34
    0
    location ~ ^/wap/(.+\.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar))$ {
      access_log  off;
      rewrite  ^/wap/(.+)$ /wap/web/$1 break;
      rewrite  ^/wap/(.+)/(.+)$ /wap/web/$1/$2 break;
      rewrite  ^/wap/(.+)/(.+)/(.+)$ /wap/web/$1/$2/$3 break;
      rewrite  ^/wap/(.+)/(.+)/(.+)/(.+)$ /wap/web/$1/$2/$3/$4 break;
      rewrite  ^/wap/(.+)/(.+)/(.+)/(.+)/(.+)$ /wap/web/$1/$2/$3/$4/$5 break;
    }
    
    

    这样的配置需要怎么优化

    1
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 花颜诱人醉ゝ 普通会员 1楼

      Nginx是一个高性能的HTTP和反向代理服务器,它使用正则表达式和位置匹配规则来实现URL重写。以下是一些优化Nginx的URL重写配置的技巧:

      1. 精确匹配:在URL重写规则中,使用^$来匹配URL的开始和结束。例如,如果要重写所有以/news/开头的URL,可以使用以下规则:

      location /news/ { rewrite ^/news/(.*)$ /$1 last; }

      1. 最长匹配:Nginx支持最长匹配,这允许服务器在重写规则中匹配最长的URL。例如,如果要重写所有以/news//services/开头的URL,可以使用以下规则:

      location /news/ { rewrite ^/news/(.*)$ /news/services/(.*)$ last; }

      这将匹配到/news/services/,而不是/news/,即使URL中的/news部分在重写规则中没有被匹配。

      1. 保留重定向:在重写规则中,可以使用重定向关键字来保留URL的原始路径。例如,以下规则将重定向所有以/news/开头的URL到/news/services/

      location /news/ { rewrite ^/news/(.*)$ /news/services/(.*)$ last; redirect 301 $1/$2; }

      这将重定向所有/news//news/services/,即使URL中的/news部分在重写规则中没有被匹配。

      1. 过滤URL参数:在重写规则中,可以使用^$来匹配URL的开始和结束,同时可以使用?符号来匹配URL中的参数。例如,以下规则将重写所有包含?param1=value1?param2=value2的URL:

      location /news/ { rewrite ^/news/(.*)$ /news/services/(.*)$ last; rewrite ^/news/(.*)$ ?param1=value1&param2=value2 last; }

      这将重写所有包含param1=value1param2=value2的URL到/news/services/(.*),即使URL中的param1param2在重写规则中没有被匹配。

      1. URL长度限制:在重写规则中,可以使用<length>匹配符来限制重写规则匹配的URL长度。例如,以下规则将重写所有长度超过200个字符的URL:

      location /news/ { rewrite ^/news/(.*)$ /news/services/(.*)$ last; rewrite ^/news/(.*)$ length 200; }

      这将重写所有长度超过200个字符的URL到/news/services/(.*),即使URL中的/news部分在重写规则中没有被匹配。

      1. 过滤IP地址:在重写规则中,可以使用^$来匹配URL的开始和结束,同时可以使用ip关键字来匹配URL中的IP地址。例如,以下规则将重写所有包含192.168.1.10010.0.0.100的URL:

      location /news/ { rewrite ^/news/(.*)$ /news/services/(.*)$ last; rewrite ^/news/(.*)$ ip $1 last; }

      这将重写所有包含192.168.1.10010.0.0.100的URL到/news/services/(.*),即使URL中的/news部分在重写规则中没有被匹配。

      通过使用上述规则,你可以优化Nginx的URL重写配置,使其更高效、更灵活,更适合不同的应用场景。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部