nginx alias因为正则出错规则被覆盖问题的解决

在windows平台 为nginx设置一个alias作虚拟目录。但是总是出404错误。

观察error.log,发现实际链接的目录总是原来的root,附上原nginx.conf的一部分.

location ~ .*\.(js|css)?
        {
            root        D:/feeder/web/;
            expires off;
        }

location /download {
            alias   e:/record/;
            index index.html index.htm;
            expires off;
        }

可以看出,上面为js/css文件的规则的正则表达式并不正确,?号在正则中匹配0个或一个js|css,从而整个表达式匹配的是.号...从而导致其中的root设定覆盖了/download下的alias设定

把location ~ .*\.(js|css)?中的?号前加上转义反斜杠,问题解决。

总结:本身找不出错误的时候,不妨看看问题是不是出在其它的地方。

时间: 2024-11-08 22:42:07

nginx alias因为正则出错规则被覆盖问题的解决的相关文章

2-常用的正则匹配规则(会员名,真实姓名,邮箱,身份证号码,邮箱)

一.常见的正则匹配规则: 常见的匹配规则有 会员名,真实姓名,邮箱,身份证号码,邮箱等等 1.用户名 要求:会员名以汉字或字母开头,有3-18位数字,字母,下划线,汉字组成 正则:reg1 = /^[\u4e00-\u9fa5a-zA-Z][0-9a-zA-Z_\u4e00-\u9fa5]{2,17}/; 2.真实姓名 要求:真实姓名是2-6位的汉字组成 正则:reg2 = /^[\u4e00-\u9fa5][\u4e00-\u9fa5]{1,5}$/; 3.密码 要求:由6-16位的数字,字母

正则表达式学习和常用正则验证规则(包括用户名,密码,手机号,网址等)

正则表达式基础语法 1.1匹配不同类型的字符 字符类 匹配的字符 \d 匹配一个数字字符.等价于 [0-9]. \D 匹配一个非数字字符.等价于 [^0-9]. \w 匹配包括下划线的任何单词字符.等价于‘[A-Za-z0-9_]‘. \W 匹配任何非单词字符.等价于 ‘[^A-Za-z0-9_]‘. \s 匹配任何空白字符,包括空格.制表符.换页符等等.等价于 [ \f\n\r\t\v]. \S 匹配任何非空白字符.等价于 [^ \f\n\r\t\v]. .(点号) 任一字符 […] 括号中的

水晶报表 Crystal Report 调用存储过程时出错 找不到表 ,解决方法。

用 CrystalReportViewer1 控件在asp.net的网页上显示报表,如果做报表时调用数据表数据的方式调用是可以成功的,但报表是用存储过程获取数据方式会出现以下错误: 找不到表'RptOpenCheck;1' . 文件 G:\TEMP\FO-OpenCheck {6D191F06-DECF-4A25-88FC-8553E3D435AA}.rpt 内出错: 找不到表. Error: 未将对象引用设置到对象的实例. The table 'RptOpenCheck;1' could no

nagios监控内出错NRPE: Unable to read output 解决!

 nagios监控内出错NRPE: Unable to read output 解决! 由于编写check_mem监控脚本,在监控机报警:NRPE: Unable to read output,其他监控项目正常 初步认定是nagios没有权限去实行check_mem脚本: 1.在监控主机监控客户机内存,遇到NRPE: Unable to read output # /usr/local/nagios/libexec/check_nrpe -H 1192.168.1.10 -c check_mem

asp.net 文件上传出错:Maximum request length exceeded 解决方法

<configuration>    <system.web>               <httpRuntime maxRequestLength="102400" useFullyQualifiedRedirectUrl="true" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="10

nginx中的location匹配规则介绍

简要概述 location匹配的几个命令的说明,如下 符号 说明 ~ 波浪线表示执行一个正则匹配,区分大小写 ~* 表示执行一个正则匹配,不区分大小写 ^~ ^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录 = 进行普通字符精确匹配 @ "@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files 具体详情,请参加官方文档 官方文档理解 前缀匹配 前面带有/或者/documents/的为前缀匹配.前缀匹

nginx配置location及rewrite规则重写

一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 [ configuration B ] } location /documents/ { # 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没有匹配到时,这一条才会采用这一条 [ c

nginx详解之语法规则

1.location [=|~|~*|^~] /uri/ { … } location  = / {   # 精确匹配 / ,主机名后面不能带任何字符串   [ configuration A ]  } location  / {   # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求   # 但是正则和最长字符串会优先匹配   [ configuration B ]  } location /documents/ {   # 匹配任何以 /documents/ 开头的地址,匹配符合

Nginx配置location与rewrite规则教程

location教程 示例: location = / { # 精确匹配 /,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的地址都以/开头,所有这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 [ configuration B ] } location /documents/ { # 匹配任何以/documents/开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没有匹配到时,这一条才会采用 [