我正试图将一个非常简单的从以前的nginx版本改写成如下所示的当前版本:
location / { if ( !-f $request_filename ) { rewrite ^/([az]*)$ /index.php?action=$1; rewrite ^/([az]*)/(.*)$ /index.php?action=$1&item=$2; } }
这是我得到了多less。 索引页面显示出来,但是任何应该像上面那样重写的页面,会抛出404错误:
server { listen 80 default; root /var/www; index index.php; server_name _; location / { try_files $uri $uri/ /index.php?action=$uri&item=$args; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; } }
我在这里做错了什么?
这应该工作:
location / { try_files $uri $uri/ @rules; } location @rules { rewrite ^/([az]*)$ /index.php?action=$1; rewrite ^/([az]*)/(.*)$ /index.php?action=$1&item=$2; } location /index.php { fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }