「笔记」.htaccess 及 nginx.conf 可用变量一览
条评论自己搜索能力明明不算低,但是好多东西并不能快速找到还是好纠结;
.htaccess | nginx.conf | 说明 |
---|---|---|
%{REQUEST_SCHEME} | $scheme | http /https |
%{HTTP_HOST} | $host | 域名 / ip |
%{REQUEST_URI} | $request_uri | host/ 后边的部分 |
%{REQUEST_FILENAME} | $request_filename | 一般情况下好像有 uri 一样? |
%{QUERY_STRING} | $args | 查询字符串(? 后边的部分) |
%{HTTP_USER_AGENT} | $http_user_agent | 客户端 UA |
%{REMOTE_ADDR} | $remote_addr | 访问来源 IP |
$scheme://$host/
或%{REQUEST_SCHEME}://%{HTTP_HOST}/
可直接拼接出当前网址;
mod_rewrite 参考文档_Apache 中文文档:
https://www.apachehttpd.com/mod/mod_rewrite.html
Htaccess - THE Ultimate .htaccess tutorial with 100’s of Examples:
https://www.askapache.com/htaccess/#Htaccess_Variables
一.正则表达式匹配,其中:
~
为区分大小写匹配;~*
为不区分大小写匹配;!~
和!~*
分别为区分大小写不匹配及不区分大小写不匹配;
二.文件及目录匹配,其中:
-f
和!-f
用来判断是否存在文件;-d
和!-d
用来判断是否存在目录;-e
和!-e
用来判断是否存在文件或目录;-x
和!-x
用来判断文件是否可执行;
三.rewrite 指令的最后一项参数为 flag 标记,flag 标记有:
last
对重写后的 URI 发起新请求,最终效果取决于新请求能否匹配到另外的规则;「好像相当于 apache 里面的[L]
标记」break
当前指令指定的新 URI 既最终结果;redirect
返回 302 临时重定向,浏览器地址会显示跳转后的 URL 地址;permanent
返回 301 永久重定向,浏览器地址会显示跳转后的 URL 地址;
2022 年了我才知道 Nginx 配置里不能直接用「与」「或」运算什么的?
1 | # 用来查看访问的 IP,仅测试用 |
Nginx 实现仅允许搜索引擎或指定 IP 访问:
1 | # 沉冰浮水(wdssmq) |