Назад | Перейти на главную страницу

nginx rewrite или внутреннее перенаправление, первичный скрипт неизвестен

Я перехожу на nginx с apache. Рассматриваемое приложение выглядит следующим образом

/ contentlibrary_js /contentlibrary_js/app/index.php -> одностраничное приложение ajax /contentlibrary_js/pagecreator/index.php -> серверная часть приложения codeigniter

Я надеюсь, что один серверный блок будет обрабатывать как запросы к внешнему интерфейсу, так и запросы к внутреннему интерфейсу.

В следующей конфигурации я получаю «цикл перезаписи или внутреннего перенаправления при внутреннем перенаправлении на« /index.php »в моем журнале ошибок nginx.

Я попытался добавить второй блок местоположения для обработки запросов к файлу pagecreator / index.php, но затем приложение зависает в ожидании ответа, и я получаю сообщение «FastCGI, отправленное в stderr:« Первичный сценарий неизвестен »при чтении заголовка ответа из восходящего потока», в журнале ошибок.

Любые предложения, спасибо

server {
    server_name contentlib.dev;
    #access_log logs/leonardo.access.log main;
    root /Users/acasanova/projects/mednet/contentlibrary_js;
    index  index.html index.htm index.php; 
    try_files $uri $uri/ /pagecreator/index.php /index.php /index.php$uri /index.php?$args;


    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    # Codeigniter
    # location /pagecreator/{ 
    #     try_files $uri $uri/ index.php$request_uri;
    #    #root /Users/acasanova/projects/mednet/contentlibrary_js/pagecreator;
    #     fastcgi_pass   127.0.0.1:9000;
    #     fastcgi_index  index.php;
    #     fastcgi_param  SCRIPT_FILENAME  /Users/acasanova/projects/mednet/contentlibrary_js/pagecreator$fastcgi_script_name;

    #     include        fastcgi_params;           
    # }

    location ~ [^/]\.php(/|$)  { #GC
      # try_files $uri $uri/  /index.php$uri /index.php?$args;
       fastcgi_pass   127.0.0.1:9000;
       fastcgi_index  index.php;
       #fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
       fastcgi_param  SCRIPT_FILENAME  $request_filename;
       include        fastcgi_params;
    }

    location ~ /\.ht {
        deny  all;
    }
}

Похоже, мне было трудно понять, что директива try_file позволит получить доступ к другим блокам местоположения. Я все думал, что если запрос соответствует местоположению, это единственный блок местоположения, который нужно обработать.

server {
    server_name contentlib.dev;
    access_log logs/contentlibrary_access.log;
    root /Users/acasanova/projects/mednet/contentlibrary_js;
    #default_type text/html;
    index  index.php index.html index.htm; 

    location /app{
        try_files $uri $uri/ /index.php /index.php$uri  =404;
        root /Users/acasanova/projects/mednet/contentlibrary_js/app;
    }

    location ~* \.(jpg|jpeg|gif|png|html|css|zip|tgz|gz|rar|doc|xls|pdf|ppt|tar|wav|bmp|rtf|swf|flv|txt|xml|docx|xlsx|js)$ {
        try_files $uri $uri/ /index.php$uri =404;
        access_log off;
    }

    location /pagecreator{       
        try_files $uri /index.php index.php$uri =404;     
        root /Users/acasanova/projects/mednet/contentlibrary_js/pagecreator;
    }

    location ~ [^/]\.php(/|$)  { #GC            
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass   unix:/php-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;           
    }

    location ~ /\.ht {
        deny  all;
    }
}