powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / настрой nginx для длинного URL
25 сообщений из 32, страница 1 из 2
настрой nginx для длинного URL
    #39390609
добрый день.

есть вот такой URL
http://uz2.love-kitchen.ru/srm/gate.php/zakaz/opendoc/4545

на что сервер отвечает

"Страница uz2.love-kitchen.ru не работает
Сайт uz2.love-kitchen.ru выполнил переадресацию слишком много раз"

настройка nginx:

server {
server_name uz2.love-kitchen.ru;
#access_log /var/log/nginx/newsite.com-access.log;
#error_log /var/log/nginx/newsite.com-error.log;
root /var/www/vhosts/uz.lk.ru;

location / {
index index.html index.htm index.php;
try_files $uri $uri/ /index.php;
}
location ~ .php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
try_files $uri $uri/ /index.php;
fastcgi_param SCRIPT_FILENAME /var/www/vhosts/uz.lk.ru$fastcgi_script_name;
}
}

особенности такие:
нужно что бы URL запрос uz2.love-kitchen.ru
обрабатывался index.php
т.е. как обычно.
с данными настройками это работает без проблем.

а вот запрос
http://uz2.love-kitchen.ru/srm/gate.php/zakaz/opendoc/4545
нужно что бы вызывал gate.php
и всю оставшеюся строку отдавал ему как параметр штоли.

сайт отлично работал на apache, а вот после переезда на ngix
перестал работать на запросах вида http://uz2.love-kitchen.ru/srm/gate.php/zakaz/opendoc/4545
просто сообщает "Сайт uz2.love-kitchen.ru выполнил переадресацию слишком много раз."
скрипт файла gate.php даже не пытается выполниться.

помогите плиз настроить для работы с обеими типами запроса.

спасибо.
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39390682
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боровиков Степаннужно что бы вызывал gate.php
и всю оставшеюся строку отдавал ему как параметр штоли.
Код: none
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
location = /srm/gate.php/zakaz/opendoc/[0-9]+ { 
    rewrite "/srm/gate.php/zakaz/opendoc/([0-9]+)" http://uz2.love-kitchen.ru/srm/gate.php?zakaz=$1 break;
}

location ~ .php$ {
    location ~ \..*/.*\.php$ {return 404;}
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www/vhosts/uz.lk.ru$fastcgi_script_name;
    include /etc/nginx/fastcgi_params;
}
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39390687
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usman
Код: none
fastcgi_param SCRIPT_FILENAME /var/www/vhosts/uz.lk.ru$fastcgi_script_name;
замените на:
Код: sql
1.
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39390741
Usman,

zakaz это контролер, opendoc это метод контролера.
после слеша, параметр метода.
т.е. на практике эти значения в url будут меняться.
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39390747
в gate.php делается приблизительно следующее:

....
//разделяем URL по символу "/"
$routes = explode('/', $_SERVER['REQUEST_URI']);
// получаем имя контроллера
if ( !empty($routes[3]) )
{
$controller_name = $routes[3];
}

// получаем имя метода контролера
if ( !empty($routes[4]) )
{
$action_name = $routes[4];
}
.....


т.е. мне похоже нужно что бы просто запустился скрипт gate.php
а строка $_SERVER['REQUEST_URI'] вернула url который указали в броузере
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39392097
я так понимаю, что мне нужно написать
некое регулярное выражение после директивы "location", которое бы соответсвовало моему запросу:
http://uz2.love-kitchen.ru/srm/gate.php/zakaz/opendoc/4545
где
zakaz, opendoc, 4545 могут быть любыми.
При этом nginx не ругался и вызывал скрипт по адресу
/var/www/vhosts/uz.lk.ru/srm/gate.php

location <регулярное вырожение> {
Что то вписать тут
}


подскажите, какое должно быть регулярное выражение.
и заставить выполнится gate.php
который лежит /var/www/vhosts/uz.lk.ru/srm/
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39392109
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боровиков Степан,

Попробуйте добавить блок выделенный желтым:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
location / {
    index index.html index.htm index.php;
    try_files $uri $uri/ /index.php;
}

location ~ .php$ {
    location ~ \..*/.*\.php$ {return 404;}
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    include /etc/nginx/fastcgi_params;
}

location ~*$ {
    try_files $uri $uri/;
}
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39392154
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боровиков Степанподскажите, какое должно быть регулярное выражение.
Код: sql
1.
2.
3.
location = /srm/gate.php/\w+/\w+/\d+ { 
    rewrite "/srm/gate.php/(\w+)/(\w+)/(\d+)" http://uz2.love-kitchen.ru/srm/gate.php?controller=$1&method=$2&docId=$3 break;
}

в $routes должны попасть 3 переменные выделенные красным
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39392441
Usman,

при

location = /srm/gate.php/\w+/\w+/\d+ {
fastcgi_index gate.php;
fastcgi_param SCRIPT_FILENAME /var/www/vhosts/uz.lk.ru/srm$fastcgi_script_name;
root /var/www/vhosts/uz.lk.ru/srm;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
try_files $uri $uri/ /gate.php;
}

все равно пишет что переадресация слишком много раз. т.е. location = /srm/gate.php/\w+/\w+/\d+
не канает

а если не заморачиваться с переменными. иначе придется переписывать дофига.
Ведь инструкци $_SERVER['REQUEST_URI'] один черт получит URL

поэтому тупо сделать так что бы выполнился gate.php при запросе:
http://uz2.love-kitchen.ru/srm/gate.php/<контролер>/<метод>/<параметр1>/<параметр2>
gate.php kt;bn nen /var/www/vhosts/uz.lk.ru/srm/gate.php

и обычный index.php при любом другом URL
index.php лежит тут /var/www/vhosts/uz.lk.ru
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39392447
Боровиков Степан,

вообще фигня какая то, не понимаю. в лоб написал такой файл настройки

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
server {
    server_name uz2.love-kitchen.ru;
    access_log /var/www/vhosts/uz.lk.ru/log/access.log;
    error_log  /var/www/vhosts/uz.lk.ru/log/error.log;

    location / {
    	index index.html index.htm index.php;
	try_files  $uri $uri/ /index.php;
	root /var/www/vhosts/uz.lk.ru;
    }

    location ~ .php$ {
        root /var/www/vhosts/uz.lk.ru;
	include /etc/nginx/fastcgi_params;
        fastcgi_pass  127.0.0.1:9000;
	fastcgi_index index.php;
	try_files  $uri $uri/ /index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/vhosts/uz.lk.ru$fastcgi_script_name;
    }

    location = /srm/gate.php/zakaz/opendoc/125 {
        root /var/www/vhosts/uz.lk.ru/srm;
 	fastcgi_index gate.php;
        fastcgi_param SCRIPT_FILENAME /var/www/vhosts/uz.lk.ru/srm$fastcgi_script_name;
       	include /etc/nginx/fastcgi_params;
        fastcgi_pass  127.0.0.1:9000;
	try_files  $uri $uri/ /gate.php;
     }

}



делаю запрос:
http://uz2.love-kitchen.ru/srm/gate.php/zakaz/opendoc/125

т.е. он должен был совпасть с location = /srm/gate.php/zakaz/opendoc/125 {.....
и выполниться gate.php из корневого каталога /var/www/vhosts/uz.lk.ru/srm

но ничего подобного. броузер пишет:
Сайт uz2.love-kitchen.ru выполнил переадресацию слишком много раз.

почему так?
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39392448
при location ~*$ {

тоже самое
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39392453
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боровиков Степан,

Попробуйте вместо break выставить permanent :
Код: sql
1.
2.
3.
location = /srm/gate.php/\w+/\w+/\d+ { 
    rewrite "/srm/gate.php/(\w+)/(\w+)/(\d+)" http://uz2.love-kitchen.ru/srm/gate.php?controller=$1&method=$2&docId=$3 permanent;
}

см. тут
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39392456
Usman,
мне кажется это что то не то.

во превых параметры... мне переписывать придется пол сайта.
воторых само выражение /srm/gate.php/\w+/\w+/\d+ тоже не понимается ngix
он все равно ругается на переадресацию.

в то время как в gate.php я уже просто написала echo ('привет');

сейчас вот что сделал

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
server {
    server_name uz2.love-kitchen.ru;
    access_log /var/www/vhosts/uz.lk.ru/log/access.log;
    error_log  /var/www/vhosts/uz.lk.ru/log/error.log;

    root /var/www/vhosts/uz.lk.ru/srm;

    location = /srm/gate.php/zakaz/opendoc/125 {
 	
       	include /etc/nginx/fastcgi_params;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index index.php;
	try_files  $uri $uri/ /index.php;
	fastcgi_param SCRIPT_FILENAME /var/www/vhosts/uz.lk.ru/srm$fastcgi_script_name;

     }

}



при запросе
http://uz2.love-kitchen.ru/srm/gate.php/zakaz/opendoc/125

ошибки связанной с переадресацие нет.
но броузер не выполняет php скрипт файла index.php а просто скачивает его на комп :(
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39392458
сори.
сервер не выполняет скрипт. а просто отдает броузеру файл на закачку
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39392463
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боровиков Степанвоторых само выражение /srm/gate.php/\w+/\w+/\d+ тоже не понимается ngixпоправил:
Код: sql
1.
2.
3.
location = /srm/gate.php/\.*/\.*/\[0-9]+ { 
    rewrite "/srm/gate.php/(.*)/(.*)/([0-9]+)" http://uz2.love-kitchen.ru/srm/gate.php?controller=$1&method=$2&docId=$3 last;
}
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39392465
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ошибся:
Код: sql
1.
location = /srm/gate.php/.*/.*/[0-9]+ { ... }
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39392470
Usman,

запрос
uz2.love-kitchen.ru/srm/gate.php/zakaz/opendoc/125

настройка:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
server {
    server_name uz2.love-kitchen.ru;
    access_log /var/www/vhosts/uz.lk.ru/log/access.log;
    error_log  /var/www/vhosts/uz.lk.ru/log/error.log;

    location / {
    	index index.html index.htm index.php;
	try_files  $uri $uri/ /index.php;
	root /var/www/vhosts/uz.lk.ru;
    }


    location = /srm/gate.php/.*/.*/[0-9]+ {
        root /var/www/vhosts/uz.lk.ru/srm;
 	fastcgi_index gate.php;
        fastcgi_param SCRIPT_FILENAME /var/www/vhosts/uz.lk.ru/srm$fastcgi_script_name;
       	include /etc/nginx/fastcgi_params;
        fastcgi_pass  127.0.0.1:9000;
	try_files  $uri $uri/ /gate.php;
     }

}



просто скачивает фаил index.php
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39392479
Usman,

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
server {
    server_name uz2.love-kitchen.ru;
    access_log /var/www/vhosts/uz.lk.ru/log/access.log;
    error_log  /var/www/vhosts/uz.lk.ru/log/error.log;

    location / {
    	index index.html index.htm index.php;
	try_files  $uri $uri/ /index.php;
	root /var/www/vhosts/uz.lk.ru;
    }

    location /srm/gate.php/.*/.*/[0-9]+ {
        root /var/www/vhosts/uz.lk.ru/srm;
 	fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/vhosts/uz.lk.ru/srm$fastcgi_script_name;
       	include /etc/nginx/fastcgi_params;
        fastcgi_pass  127.0.0.1:9000;
	try_files  $uri $uri/ /index.php;
     }

}



он похоже не заходит в ветку location /srm/gate.php/.*/.*/[0-9]+ {.....
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39392487
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боровиков Степанпросто скачивает фаил index.phpэто из-за try_files
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39392494
Usman,

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
server {
    server_name uz2.love-kitchen.ru;
    access_log /var/www/vhosts/uz.lk.ru/log/access.log;
    error_log  /var/www/vhosts/uz.lk.ru/log/error.log;
    root /var/www/vhosts/uz.lk.ru/srm;

    location /srm/gate.php/zakaz/opendoc/125 {
        
 	fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/vhosts/uz.lk.ru/srm$fastcgi_script_name;
       	include /etc/nginx/fastcgi_params;
        fastcgi_pass  127.0.0.1:9000;
	
     }

}




что то случилось хорошее. но не то.

броузер написал "File not found."

хотя в index.php

вот такая запись

Код: php
1.
2.
3.
4.
5.
<?php

 echo ("srm gate");

?>
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39392495
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам скорее всего нужен fastcgi_split_path_info :
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
location ~ \.php$ {
    try_files $uri=404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_index index.php;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME /var/www/vhosts/uz.lk.ru/srm$fastcgi_script_name;
    include /etc/nginx/fastcgi_params;
    fastcgi_intercept_errors on;
}

location / {
    index index.php;
    try_files $uri $uri/ $uri.php;
}

порядок нужно сохранить
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39392497
Usman,

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
location /srm/gate.php/zakaz/opendoc/125 {
        
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_index index.php;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME /var/www/vhosts/uz.lk.ru/srm$fastcgi_script_name;
    include /etc/nginx/fastcgi_params;
    fastcgi_intercept_errors on;
	
     }



все равно фаил не найден

try_files $uri=404; ругается при перезапуске nginx
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39392500
Usman,

мне по сути просто нужно что бы
при uz2.love-kitchen.ru/srm/gate.php/zakaz/opendoc/125
отработал скрипт в gate.php (ну или хрен с ним пусть будет index.php)
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39392503
Usman,

вот такая ошибка в логе

2017/01/26 23:03:35 [error] 8510#8510: *2 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 192.168.0.12, server: uz2.love-kitchen.ru, request: "GET /srm/gate.php/zakaz/opendoc/125 HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "uz2.love-kitchen.ru"


на запрос
http://uz2.love-kitchen.ru/srm/gate.php/zakaz/opendoc/125

при настроках

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
server {
    server_name uz2.love-kitchen.ru;
    access_log /var/www/vhosts/uz.lk.ru/log/access.log;
    error_log  /var/www/vhosts/uz.lk.ru/log/error.log;
	
    root /var/www/vhosts/uz.lk.ru/srm;

    location /srm/gate.php/zakaz/opendoc/125 {
        
 	fastcgi_index index.php;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME /var/www/vhosts/uz.lk.ru/srm$fastcgi_script_name;
       	include /etc/nginx/fastcgi_params;

	
     }

}
...
Рейтинг: 0 / 0
настрой nginx для длинного URL
    #39392509
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боровиков Степан,

попробуйте заменить строку:
Код: sql
1.
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / настрой nginx для длинного URL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]