Nginx:位置 404,try_files 位于不同的根目录下

Nginx:位置 404,try_files 位于不同的根目录下

我正在将我管理的 wiki (practicalplants.org) 迁移到运行 Nginx 的新服务器。我习惯使用 Apache;这是我第一次使用 Nginx,我无法适应我在 Apache 中设置的重写和别名。目录布局如下

/html               (server root)
    /html/w         (mediawiki)
    /html/community (vanilla)
    /html/blog      (wordpress)
/sso                (Zend Framework SSO solution)
    /sso/public

如您所见,sso 解决方案具有它自己的可公开访问的应用程序根目录,我正尝试将其设置为root指令location,但似乎以下内容try_files仍尝试回退到server root

这是我的配置:

server {
  server_name practicalplants.org;

  root /var/www/v-practicalplants/html;
  access_log /var/log/nginx/practicalplants.org-access.log;
  error_log /var/log/nginx/practicalplants.org-error.log;

  include /etc/nginx/biowikifarm_listen80_443.conf;
  include /etc/nginx/biowikifarm_generics.conf;
  include /etc/nginx/biowikifarm_generic_php.conf;

  disable_symlinks off;

  location = / {
    # Redirect domain-only access to wiki:
    rewrite "^[/]?$" /wiki/ permanent;
  }

  location /wiki {
    #rewrite "^/wiki[/]?([^?]*)(?:\?(.*))?" /w/index.php?title=$1&$args last;
    try_files $uri $uri/ /w/index.php?title=$uri&$args;
  }
  location /w/media {
    location ~ ^/w/media/thumb/(archive/)?[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ {
      try_files $uri @thumb_w;
    }
  }
  location @thumb_w {
    rewrite ^/w/media/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ /w/thumb.php?f=$1&width=$2;
    rewrite ^/w/media/thumb/archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ /w/thumb.php?f=$1&width=$2&archived=1;
    include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME  $document_root/w/thumb.php; fastcgi_pass php5-fpm-sock;
  }

  location /sso {
    root /var/www/v-practicalplants/sso/public;
    try_files $uri $uri/ /index.php
  }
}

如果我导航到 /sso,此配置会给出 404

这里面有什么明显的错误吗?

答案1

您需要alias在这里使用 而不是root

您现有的配置尝试加载/var/www/v-practicalplants/sso/public/sso/index.php,这可能不是您想要的。无论它在哪个文件location中,root始终指定文档root,即 的位置/

而是使用alias来指定 的位置location

location /sso/ {
    alias /var/www/v-practicalplants/sso/public;
    try_files.....

相关内容