LINUX.ORG.RU
ФорумAdmin

nginx location

 


0

1

Доброго времени суток!

При открытии

http://system.net/frame/main?fid=e542997f54 происходит перевод на http://system.net/ т.к срабатывает первый по списку локайшен.

В папке frame нет папки main, это вызов акшена. Но в папке frame/index.php который и обрабатывает этот вызов.

Если запросить http://system.net/frame/index.php, то index.php выводиться.

Данная конструкция работает под Apache в каталоге frame/ находится .htaccess

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{REQUEST_URI} !^/tasks/
RewriteRule (.*) index.php/$1

Его конвертировал в формат nginx, но конструкция так и не работает.

Помогите разобраться пожалуйста с локейшеном для вызова данной конструкции.

root /var/www/system;

server {
    listen 192.168.72.1:80;
    server_name system.net;

        
    access_log  /var/log/nginx/system.com.access.log;
    error_log  /var/log/nginx/system.com.error.log;


    location ~* /(images|css|js)/ {
           expires max;
    }

    location ~* \.(pdf)$ {
        access_log      off;
        expires           max;
    }

    location = /favicon.ico {
        try_files $uri =204;
        
    }

    location / {
        include fastcgi_params;
        fastcgi_param PATH_INFO $uri;
        fastcgi_param SCRIPT_NAME /wm.php;
        fastcgi_param SCRIPT_FILENAME $document_root/wm.php;
        fastcgi_pass dynamic;
    }


    location ~ ^/(tasks|tests|sso|webservice-0.3.1|rest|frame)/.+?\.php$ {
        try_files $uri /;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass dynamic;
    }

    location ~ ^/(status|ping)$ {
        include fastcgi_params;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass dynamic;
    }
}

осиль завернуть конфиги в [сode]config { ...}[/code]

svr4 ()

Лень проверять, но твоей конструкции примерно соответствует

location /frame/ {
		try_files $uri index.php/$uri =404;
	
}

^/tasks там вообще не в тему, ибо хтакцес, лежащий в /frame/, на /tasks/ вообще никак не влияет.

svr4 ()
Ответ на: комментарий от svr4

Дает 404

location /frame/ {
        try_files $uri index.php/$uri =404;

}

    location ~ ^/(tasks|tests|sso|etm-webservice-0.3.1|rest|frame)/.+?\.php$ {
        try_files $uri /;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass dynamic;
    }

regsterr ()
Ответ на: комментарий от regsterr

Во с такой конструкции заработало вроде.... Кто сможет объяснить про @fallback?

location /frame { try_files $uri $uri/ @fallback; }
location @fallback
{
    fastcgi_pass backend;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root/frame/index.php; 
}
regsterr ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.