ngx_http_rewrite_module
将用户请求的URI基于PCRE regex所描述的模式进行检查,而后完成重定向替换if:
Syntax: if (condition) { ... }
Default: —
Context: server, location
条件满足时,执行配置块中的配置指令
condition:
比较操作符:
= 相同 != 不同
~ 模式匹配,区分字符大小写
~* 模式匹配,不区分字符大小写
!~ 模式不匹配,区分字符大小写
!~* 模式不匹配,不区分字符大小写
文件及目录存在性判断:
-e,!-e 存在与否(包括文件,目录,软链接)
-f,!-f 文件
-d,!-d 目录
-x,!-x 执行
注意: if (condition) { ... } 语句中,如果$变量的值为空字符串或是以0开头的任意字符串,则 if 指令认为该条件为false,其它条件为true
return:
return code [text]; #返回客户端指定的状态码和文本说明
return code URL;
return URL;
停止处理,并返回给客户端指定的响应码(包括: 204, 400, 402 — 406, 408, 410, 411, 413, 416, 500 — 504),
对 301, 302, 303, 307, 308跳转到URL
在版本1.1.16和1.0.13之前,代码307没有被视为重定向
在版本1.13.0之前,代码308未被视为重定向
Default: —
Context: server, location, if
示例:return实现URL重写
[[email protected] certs]# vim /apps/nginx4/conf/conf.d/test.conf server { listen 443 ssl; listen 80; server_name www.magedu.org; root /data/site14/; #ssl on; ssl_certificate /apps/nginx4/ssl/magedu.org.crt; ssl_certificate_key /apps/nginx4/ssl/magedu.org.key; ssl_session_cache shared:sslcache:20m; ssl_session_timeout 10m; access_log /apps/nginx4/logs/magedu.org.ssl.access.log access_json ; location / { if ( $scheme = http ){ return 301 https://www.magedu.org; #条件判断重定向 } } } #server { # server_name www.magedu.org; # root /data/site14/; # access_log /apps/nginx4/logs/magedu.org.access.log access_json ; # default_type text/html ; #}
验证:
[[email protected] certs]# curl -I http://www.magedu.org/ HTTP/1.1 301 Moved Permanently Server: nginx/1.14.2 Date: Sun, 07 Mar 2021 07:16:56 GMT Content-Type: text/html Content-Length: 185 Connection: keep-alive Location: https://www.magedu.org [[email protected] certs]# curl -Lk http://www.magedu.org/ /data/site14/index.html
示例:拒绝curl访问
配置:
[[email protected] certs]# vim /apps/nginx4/conf/conf.d/test.conf server { listen 443 ssl; listen 80; server_name www.magedu.org; root /data/site14/; #ssl on; ssl_certificate /apps/nginx4/ssl/magedu.org.crt; ssl_certificate_key /apps/nginx4/ssl/magedu.org.key; ssl_session_cache shared:sslcache:20m; ssl_session_timeout 10m; access_log /apps/nginx4/logs/magedu.org.ssl.access.log access_json ; location / { if ($http_user_agent ~* curl) { return 301; } } }
验证: [[email protected] certs]# curl http://www.magedu.org <html> <head><title>301 Moved Permanently</title></head> <body bgcolor="white"> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx/1.14.2</center> </body> </html>
配置:
[[email protected] certs]# vim /apps/nginx4/conf/conf.d/test.conf server { listen 443 ssl; listen 80; server_name www.magedu.org; root /data/site14/; #ssl on; ssl_certificate /apps/nginx4/ssl/magedu.org.crt; ssl_certificate_key /apps/nginx4/ssl/magedu.org.key; ssl_session_cache shared:sslcache:20m; ssl_session_timeout 10m; access_log /apps/nginx4/logs/magedu.org.ssl.access.log access_json ; location / { if ($http_user_agent ~* curl) { return 444; } } }
验证:停止处理并将指定的代码返回给客户端。非标准代码444在不发送响应报头的情况下关闭连接 [[email protected] certs]# curl http://www.magedu.org curl: (52) Empty reply from server
配置:
[[email protected] certs]# vim /apps/nginx4/conf/conf.d/test.conf server { listen 443 ssl; listen 80; server_name www.magedu.org; root /data/site14/; #ssl on; ssl_certificate /apps/nginx4/ssl/magedu.org.crt; ssl_certificate_key /apps/nginx4/ssl/magedu.org.key; ssl_session_cache shared:sslcache:20m; ssl_session_timeout 10m; access_log /apps/nginx4/logs/magedu.org.ssl.access.log access_json ; location / { if ($http_user_agent ~* curl) { return 405 ; } } }
验证: [[email protected] certs]# curl http://www.magedu.org <html> <head><title>405 Not Allowed</title></head> <body bgcolor="white"> <center><h1>405 Not Allowed</h1></center> <hr><center>nginx/1.14.2</center> </body> </html>
配置:临时跳转
[[email protected] certs]# vim /apps/nginx4/conf/conf.d/test.conf server { listen 443 ssl; listen 80; server_name www.magedu.org; root /data/site14/; #ssl on; ssl_certificate /apps/nginx4/ssl/magedu.org.crt; ssl_certificate_key /apps/nginx4/ssl/magedu.org.key; ssl_session_cache shared:sslcache:20m; ssl_session_timeout 10m; access_log /apps/nginx4/logs/magedu.org.ssl.access.log access_json ; location / { if ($http_user_agent ~* curl) { return http://www.magedu.com ; #curl的结果默认302,临时跳转 } } } 配置:永久跳转 [[email protected] certs]# vim /apps/nginx4/conf/conf.d/test.conf server { listen 443 ssl; listen 80; server_name www.magedu.org; root /data/site14/; #ssl on; ssl_certificate /apps/nginx4/ssl/magedu.org.crt; ssl_certificate_key /apps/nginx4/ssl/magedu.org.key; ssl_session_cache shared:sslcache:20m; ssl_session_timeout 10m; access_log /apps/nginx4/logs/magedu.org.ssl.access.log access_json ; location / { if ($http_user_agent ~* curl) { return 301 http://www.magedu.com ; #curl的结果301,永久跳转 } } }
标签:return,ssl,rewrite,apps,magedu,nginx4,access,nginx,org From: https://www.cnblogs.com/cnblogsfc/p/14591546.html