nginx - 代理规则冲突?

【字号: 日期:2022-07-03浏览:29作者:雯心

问题描述

location ~ /(test1|test2|test3|test4) {proxy_set_header Host 'test.com';proxy_set_header X-Forwarded-For $remote_addr;proxy_pass http://127.0.0.1;}if ($request_filename !~* ^/(.*).(zip|js|ico|css|php|xml|txt|html|swf|apk|ipa|plist)$) {rewrite ^/(.*)$ /index.php last; }

上面proxy规则不会生效,如果删掉rewrite规则就可以,应该是冲突了?改如何修改?

问题解答

回答1:

rewrite 优先级较高,导致路径已经先被重写了。可以都改用location去匹配。

location ~ /(test1|test2|test3|test4) { proxy_set_header Host 'test.com'; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://127.0.0.1:8080; } location ~* ^/(.*).(zip|js|ico|css|xml|txt|html|swf|apk|ipa|plist)$ {rewrite ^/(.*)$ /index.php last; } location ~ index.php$ {fastcgi_pass unix:/var/run/php5-fpm.sock;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;fastcgi_hide_header X-Powered-By; }

不过确定 静态文件也要重写到 index.php吗?

相关文章: