Nginx重写规则saml

Nginx重写规则saml,nginx,simplesamlphp,Nginx,Simplesamlphp,我试图在nginxweb服务器上安装simplesaml,但我遇到了别名问题,一位朋友告诉我使用rewrite,并给出了下面的示例,但他的示例也不起作用 rewrite ^/simplesaml/module.php/(.*) /simplesaml/www/module.php?path=$1 last; rewrite ^/simplesaml/(.*)$ /simplesaml/www/$1 last; 我怎样才能解决这个问题,我已经两天没脑子了 root /ho

我试图在nginxweb服务器上安装simplesaml,但我遇到了别名问题,一位朋友告诉我使用rewrite,并给出了下面的示例,但他的示例也不起作用

rewrite ^/simplesaml/module.php/(.*) /simplesaml/www/module.php?path=$1 last;
            rewrite ^/simplesaml/(.*)$ /simplesaml/www/$1 last;
我怎样才能解决这个问题,我已经两天没脑子了

root /home/mihaela/public_html;

我也遇到过同样的问题,这个配置是我发现唯一有效的配置

以下是我的nginx配置:

这是我的中央IDP配置

server {
    listen 80 default_server;
    server_name saml.local;

    root /srv/sites/saml.local/www/;
    index index.php;

    location ~ \.php(/|$) {
        fastcgi_keep_conn on;
        try_files $uri =404;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_URL $document_root$fastcgi_script_name;
        fastcgi_intercept_errors on;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_hide_header X-Powered-By;
        fastcgi_pass 127.0.0.1:9000;
    }
}
这是我的simplesaml配置,可通过
/saml

location  /saml {
    alias /srv/sites/site.local/vendor/simplesamlphp/www;
    index index.php;

    location ~ ^(?<prefix>/saml)(?<phpfile>.+?\.php)(?<pathinfo>/.*)?$ {
        fastcgi_param SCRIPT_FILENAME $document_root$phpfile;
        fastcgi_param PATH_INFO       $pathinfo if_not_empty;
        include fastcgi_params;
        fastcgi_hide_header X-Powered-By;
        fastcgi_pass 127.0.0.1:9000;
    }
}
位置/saml{
别名/srv/sites/site.local/vendor/simplesamlphp/www;
index.php;
位置^(?/saml)(?.+?\.php)(?/.*)${
fastcgi_参数脚本_文件名$document_根$phpfile;
fastcgi参数路径信息$pathinfo(如果不为空);
包括fastcgi_参数;
fastcgi_hide_收割台X-Powered-By;
fastcgi_pass 127.0.0.1:9000;
}
}

虽然这在理论上可以回答这个问题,但在这里包括答案的基本部分,并提供链接供参考。在文章中添加了我的配置