如果配置是
server { listen 8002; location /about/ { alias html; index index.html; } }
访问 http://localhost:8002/about/ 会返回 403 禁止
server { listen 8002; location /about/ { alias html/; index index.html; } }
访问 http://localhost:8002/about/ 会返回 html 目录下的 index.html 文件,这是符合预期的
server { listen 8002; location ~ /about/ { alias html/; index index.html; } }
访问 http://localhost:8002/about/ 会不断进行重定向生成 http://localhost:8002/about/index.html/index.html/...../index... 直到长度超过限制而访问出错。
为什么会出现第一和第三种的情况?
alias 的文档描述是替换一个指定的路径,这里的路径指的是nginx宿主机上的文件路径。比如:
location /i/ { alias /data/w3/images/;}# 当请求路径为 /i/top.gif 时,会返回 /data/w3/images/top.gif 这个文件
第一个例子中:请求路径会被映射成 /html/index.html, nginx 会尝试访问这个文件,由于nginx没有权限访问,所以会返回 403。
当在正则表达式中使用 alias 时,正则表达式中应该包含捕获,并且在 alias 中明确指定替换捕获。
location ~ ^/users/(.+\.(?:gif|jpe?g|png))$ { alias /data/w3/images/$1;}
第三种写法是不和规范的。
详情见 nginx alias 文档
第一种,当访问 /about 时,他会去找文件 htmlindex.html
而不是预期的 html/index.html
。
(很多文章都说要加上尾斜杠,实际也确实如此,但是 nginx 的官方手册中似乎没有提及。不过给出的示例里面都是有的)
第三种,按照手册上的说法,你应该使用捕获组。
If alias is used inside a location defined with a regular expression then such regular expression should contain captures and alias should refer to these captures (0.7.40), for example:
location ~ ^/users/(.+.(?:gif|jpe?g|png))$ {
alias /data/w3/images/$1;
}
包含片段/fastcgi-php.com;= 这是我的配置,我一辈子都不能让它工作。 我的期望是有超文本传输协议://mediaserver.localdomain/去"/var/www/html/组织者/index.php" 当我转到http://mediaserver时。localdomain/homelab/it提取“/opt/homelab/index.php” 但只有超文本传输协议://
如题,我实在搞不懂,官网也没看到相关说明,他们到底是拼接呢,还是代替呢,还是别的关系?整个的访问逻辑到底是怎么样的?
本文向大家介绍nginx配置location方法总结,包括了nginx配置location方法总结的使用技巧和注意事项,需要的朋友参考一下 location匹配顺序 1."="前缀指令匹配,如果匹配成功,则停止其他匹配 2.普通字符串指令匹配,顺序是从长到短,匹配成功的location如果使用^~,则停止其他匹配(正则匹配) 3.正则表达式指令匹配,按照配置文件里的顺序,成功就停止其他匹配 4.如
本文向大家介绍Nginx配置中指令root和alias的区别浅析,包括了Nginx配置中指令root和alias的区别浅析的使用技巧和注意事项,需要的朋友参考一下 前言 最近在nginx上部署日志分析工具awstats时,在配置awstats分析结果可供网页浏览这步时,分析结果页面访问总是404.后来查阅了一些资料,发现是root和alias的用法区别没搞懂导致的,这里特地将这两者区别详尽道来,供
本文向大家介绍简介Nginx中的location匹配规则,包括了简介Nginx中的location匹配规则的使用技巧和注意事项,需要的朋友参考一下 location匹配命令 ~ #波浪线表示执行一个正则匹配,区分大小写 ~* #表示执行一个正则匹配,不区分大小写 ^~ #^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录 = #进行
本文向大家介绍解决tp5在nginx下修改配置访问的问题,包括了解决tp5在nginx下修改配置访问的问题的使用技巧和注意事项,需要的朋友参考一下 第一:修改nginx配置 注意:所有配置都是基于lnmp1.4的一键安装环境的 根据自己的nginx配置,找到正确的fastcgi.conf,修改fastcgi_param参数 将默认的路径修改至自己的项目根目录的上一级,注意是上级!!! 3、lnmp