我正在尝试将非常简单的重写从以前的nginx版本转换为当前的重写,如下所示:
location / {
if ( !-f $request_filename ) {
rewrite ^/([a-z]*)$ /index.php?action=$1;
rewrite ^/([a-z]*)/(.*)$ /index.php?action=$1&item=$2;
}
}
这就是我所走的路。显示了索引页面,但是应该像上面那样重写的任何页面都抛出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;
}
}
我在这里做错了什么?
到底是怎么回事?问题的一部分是$ uri和$ args编码不正确。
—
路加福音
File not found.
如果我使用URI /page
或/page/id
当你刚做的时候会发生什么
—
路加福音
try_files $uri $uri/ /index.php
?
Index.php可以很好地工作,但是任何应重写的内容最终都出现在404年代
—
工业杂志
尝试
—
路加福音
try_files $uri $uri/ /index.php?$args
。您应该可以使用来获取URL $_SERVER['REQUEST_URI']
。$ _GET应该正常工作。