是否有任何魔术重写(就像在Apache上一样),nginx能够重写像'/submit.php'这样的URL,以便能够从index.php处理它们吗?我们有很多404未找到的错误,因为网站结构和所有以前的网址都像'/addrate.php','/ my_settings.php','/ profile.php' - >有50多个像这样的文件,为每个函数创建一个单独的.php文件是非常不专业和代码不明智的,而不是通过index.php解析所有这些文件,并像使用其他函数一样使用所需的类重写。
您能否找到解决方案/今天就此提出建议?
我认为有关此的一些信息在这里,但我想要完全相反的结果: http://www.nullis.net/weblog/2011/05/nginx-rewrite-remove-file-extension/
答案 0 :(得分:1)
此配置允许您使用/var/www/example.org/htdocs/index.php
server {
listen 80; ## listen for ipv4
server_name example.org www.example.org;
root /var/www/example.org/htdocs;
access_log /var/log/nginx/example.org.access.log;
error_log /var/log/nginx/example.org.error.log;
location / {
index index.php index.html index.htm;
try_files $uri $uri/ @php;
}
# enable running php files under php fastcgi
location ~ \.php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/example.org/htdocs$fastcgi_script_name;
#fastcgi_param QUERY_STRING $uri;
include fastcgi_params1;
}
location @php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/example.org/htdocs/index.php; # this script catches all non existing URLs
fastcgi_param QUERY_STRING $uri;
include fastcgi_params1;
}
}