建设工作站服务器
位置匹配规则
1 .示例
服务器{
location=\\\{0\\}
[配置A]
}
位置/{
[配置B]
}
location=/images/{
[配置C]
}
location ^~/静态/{
[配置D]
}
localtion~*\\&; quot; ( gif|jpg|png ) ) ) )。
[配置E]
}
}
2 .位置语法规则
语法:
location=| ~ | ~* | ^~ | @ /url/{ //注意=,~~,^,@是location的匹配规则,|“显示或
「
.省略其他配置
}
规则说明:
符号
意义
=
字面上正确一致,如果一致,就退出匹配过程(不进行正规匹配) )。
~
区分开头大小写的正规一致
~*
不区分大小写的正则匹配
^~
开头表示uri以某个哥哥通常的字符串开始,可以理解为与url路径一致
/
共同的一致。 如果没有正则表达式匹配,则所有请求都与匹配
@
用于location内部重定向的变量,而不是常规的位置匹配
~
区分开头大小写的正规一致
多个位置配置匹配的顺序:
首先一致: "="
接下来是匹配: &; #039; ^~&; #039;
重新匹配:文件位置写入顺序
最后将所有请求传递给通配符。 &; #039; /&; #039; )
注:每次匹配成功时,都会停止匹配,并根据此匹配的位置处理请求
按照上述例子说明匹配顺序。
首先与第一个位置进行比较,如果匹配,则中止匹配,并按照配置a处理请求。
location=\\\{0\\}
[配置A]
}
然后,与第二个位置相比,匹配项将停止,并根据配置d处理请求。
location ^~/静态/{
[配置D]
}
按顺序对其进行比较,直到找到匹配项,然后按照匹配的配置*处理请求
如果没有与以上匹配的选项,则选择公共选项,并根据匹配的配置b处理请求。
位置/{
[配置B]
}
3 .应用示例
正确的规则(=) )。
location=/{
root /var/ww/html/;
}
此规则表示仅匹配按默认地址访问的请求。 访问地址: http://NginxIP/
匹配url路径( ^~
location ^~/静态/{
root /var/www/html/static;
}
该规则适用于&; #039; /static/&; #039; 表示只访问以开头的地址的请求。 访问地址: https://cache.yisu.com/upload/information/2020 02 14/32/673.jpg|. gif|*.2020 02 14/32/673.jpg
location ~* /Test/{
root /var/www/html/;
}
该规则表示匹配的url地址有Test访问请求,可以在不区分大小写的情况下进行Test。 访问地址: http://NginxIP/test/
区分大小写() ) )。
位置~/test/{
root /var/www/html/;
}
该规则表示匹配的url地址存在Test访问请求,并且区分大小写。 Test一致,访问地址为http://NginxIP/Test/
默认匹配(所有规则匹配) ) ) )。
位置/{
root /var/www/html;
}
该规则是默认匹配,他可以匹配用默认地址访问的所有链接、访问地址: http://NginxIP/login.html
内部转移( @ )。
location @index_error{
root /var/www/error/
}
该规则适用于&; #039; /index/&; #039; 意味着与以开头的请求相匹配,如果是链接状态404,则与此规则相匹配
rewrite规则详细信息
nginx的rewrite功能与apache相同,rewrite的主要功能是实现RUL地址的重定向。 PCRE软件支持Nginx的rewrite功能,rewrite模块是ngx_http_rewrite_module模块。 从某种意义上来说,为了美观和通过检索进行友好的检索,也可以说提高了排名等
1 .示例
服务器{
listen 80
server _ namewww.jky ST.xyzjkyst.XYZ;
if($host!=\\\&; quot; www.jkyst.XYZ\\&; quot; {
Rewrite^/(.* ) $ http://www.jky ST.XYZ/$1permanent;
}
location~~.*\\&; quot; ( png|gif|jpg ) {
返回403;
}
}
2.rewrite语法规则
语法:
rewrite regex replacement [flag]
rewrite:rewrite改写的关键字不能省略
regex :这里写了正则表达式
替换:这里是重新内容
标志:这里是最后的标志
标志标记说明:
标志
说明
最后一次
也就是说,apache中的( l )标记表示即使rewrite完成,URL地址也不会改变
布莱克
如果此规则匹配成功,则匹配将停止,不再与后续规则匹配,并且URL地址将保持不变
重定义
302返回临时重定向,浏览器地址中显示跳转后的URL地址
人员
301永久重定向,在浏览器地址栏中显示跳转后的URL地址,Nginx返回响应状态代码301
相关符号说明:
符号
说明
*
表示开头的0或多个字符
表示开头的一个或多个字符
?
表示开头的0或1个字符
^
表示字符串的开始位置
$
表示字符串的结束位置
$n
表示字符串中最后的第n个参数
同调
通配符,表示任意字符
3 .应用示例
多域名跳转到同一个域名
服务器{
listen 80
server _ namewww.jky ST.xyzjkyst.xyzabc.jky ST.XYZ;
if($host!=\\\&; quot; www.jkyst.XYZ\\&; quot; {
Rewrite^/(.* ) $ http://www,jkyst.xyz/$1 permanent;
}
}
&; #039; abc.jkyst.xyz&; #039; 中的地图册条目上单击鼠标右键#039; www.jkyst.xyz&; #039; 跳至。 其中&; #039; if&; #039; 语句用于判断,如果判断结果为true,则执行语句内部的rewrite改写
如果文件不存在,则重定向到指定的文件
服务器{
listen 80
server_name www.jkyst.xyz;
if (! -e $request_filename ) {
rewrite ^/test/$ http://www.jky ST.XYZ/test1/$1permanent;
}
}
如果访问" test "目录的文件或目录不存在,请跳到" test1 "下的此文件或目录,然后跳转以转换URL
服务器{
listen 80
server_name www.jkyst.xyz;
if (! -e $request_filename ) {
rewrite ^/test/(.* ) $ index.html last;
}
}
如果访问" test "目录的文件或目录不存在,请重定向到" index.html "文件,表示跳转不会转换URl
服务器{
listen 80
server_name www.jkyst.xyz;
if (! -e $request_filename ) {
Rewrite^/test/(/([0-9a-z] ) ( [0-9a-z] )/).* ) $ http://www.jky ST.XYZ/test/$1$2$3permanenenet
}
}
切换目录时,表示将原来目录变换为其他目录,【0-9a-z】表示变换后的目录名
禁止访问. sh后缀的文件
服务器{
.其他配置
location~~.*\\&; quot; ( sh ) ${
返回405;
}
}
&; #039; *.sh&; #039; 指示访问的文件将返回405错误
匹配用户浏览器的代理信息
服务器{
listen 80
server_name www.jkyst.xyz;
if($http_user_agent(* ) Android )|)|(iPhone ) }
rewrite ^/test/$ http://www.jky ST.XYZ/test/$1permanent;
}
}
表示当浏览代理与Android和iPhone时重定向的“test”目录下的文件匹配时,将更改访问地址
禁止htaccess
服务器{
位置~//.ht {
deny all;
}
}
4 .文件目录匹配
参数
介绍
-f
判断文件是否具有返回值true
! -f
判断文件中是否存在返回值false
-d
判断目录中是否有返回值true
! -d
判断目录是否有返回值的true不存在
-e
判断文件或目录中是否存在返回值true
! -e
不存在用于确定文件或目录是否具有返回值的true
-x
判断文件是否可执行返回值true能够执行
! -x
判断文件是否可执行返回值true是不可执行的
举例说明:
服务器{
listen 80
server_name www.jkyst.xyz;
if (! -e $request_filename ) {
rewrite ^/test/$ http://www.jky ST.XYZ/test1/$1permanent;
}
}
判断文件或目录是否存在
详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn