我不熟悉Nginx,但我尝试根据同一台服务器上其他人准备的配置设置新的网络应用程序。
我正在尝试设置重写,以便将/ api / users请求重定向到/api/index.php。 #API位置下的这个声明应该可以完成这项工作:
if (!-e $request_filename){ rewrite ^(.*)$ /index.php; }
但是我没有被重定向到/api/index.php,而是按照#PHP部分下的try_files中的定义发送到index.html。
我的rewrite
内部条件语句是否已执行?
如果"是"那么为什么我在#PHP部分被重定向而没有从#API下的try_files获得404?
如果"否"那么为什么?如果$ uri不应包含任何' .php'以及为什么#PHP部分被激活?在那种情况下。
这是主配置:
server {
server_name dev.app.myserver.com;
listen 80;
access_log /var/log/nginx/dev.app.myserver.com.access.log;
error_log /var/log/nginx/dev.app.myserver.com.error.log;
#
location / {
try_files $uri $uri/ =404;
}
# Zmienne
set $rootPath /data/dev-app/public_html;
set $yiiDebug 1;
set $editTranslations 1;
# Ogolna konfiguracja
include /data/dev-app/nginx/common/app.conf;
}
另外还包括:
root $rootPath;
index index.html index.php;
# API
location /api {
auth_basic off;
if (!-e $request_filename){ rewrite ^(.*)$ /index.php; }
# try_files $uri $uri/ /index.php?$args;
try_files $uri $uri/ =404;
}
# PHP
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
try_files $uri $uri/ /index.html;
# try_files $uri $uri/ =404;
}
对此问题的任何启示都将不胜感激。