nginx重写不工作? 它只是忽略它

我有一个nginx奇怪的问题,它不想重写

我有这个configuration,我需要传递一个哈希(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. 从您的正则expression式中删除“”
  2. 请求通常以/开头,所以你的正则expression式应该看起来像

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

  3. 你的散列ALLCAPS? 也许你应该使用[a-zA-Z0-9]

  4. 40个字符…看起来像sha1哈希。 可能是你应该简化正则expression式到[0-9A-F]