我在使用 nginx 时遇到了一个奇怪的问题,它不想重写......
我有这个配置,我需要将一个哈希(40 个字符)传递给一个 php 文件,它可以与 apache mod_rewrite 一起使用,但与 nginx 一起使用却不行,我甚至尝试进行简单的重写,它根本不起作用
server {
.........
location / {
rewrite ^aa$ /downloadTORRENTZ.php break;
root /usr/share/nginx/html;
index index.html index.htm;
rewrite "^([A-Z0-9]{40})$" /file.php?ddl=$1 break;
}
}
答案1
- 从正则表达式中删除“”
请求通常以以下方式开头
/
,因此您的正则表达式应类似于rewrite ^/([A-Z0-9]{40})$ /file.php?ddl=$1 break;
你的哈希是全大写吗?也许你应该使用
[a-zA-Z0-9]
40 个字符...看起来像 sha1 哈希。也许你应该将正则表达式简化为
[0-9A-F]