nginx 重写不起作用??它只是忽略它

nginx 重写不起作用??它只是忽略它

我在使用 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

  1. 从正则表达式中删除“”
  2. 请求通常以以下方式开头/,因此您的正则表达式应类似于

    rewrite ^/([A-Z0-9]{40})$ /file.php?ddl=$1 break;

  3. 你的哈希是全大写吗?也许你应该使用[a-zA-Z0-9]

  4. 40 个字符...看起来像 sha1 哈希。也许你应该将正则表达式简化为[0-9A-F]

相关内容