Рейтинг:0

Как перенаправить на /index.php?/Test/ в nginx?

флаг ru

У меня есть сервер nginx. Я хочу перенаправить /index.php?/Test/ запрос на другой сервер. Я пробовал много примеров, но мне это не удалось.

Я использовал пример:

место расположения / {

    если ($query_string = "/Ajax/" ) {

        вернуть 301 http://localhost.com/index.php?/Ajax/;
    }

    расположение /index.php*/тест/ {
        вернуть 301 http://localhost.com/Test;
    }
    
    местоположение /index.php?/Тест/ {
        вернуть 301 http://localhost.com/Test;
    }

Отладка Nginx:

03.02.18 18:29:08 [отладка] 10022#0: *12 строка запроса http: "POST /?/Test/ HTTP/1.1"
18.03.2022 18:29:08 [отладка] 10022#0: *12 http uri: "/"
18.03.2022 18:29:08 [отладка] 10022#0: *12 аргументов http: "/Test/"
18.03.2022 18:29:08 [отладка] 10022#0: *12 http exten: ""
18.03.2022 18:29:08 [отладка] 10022#0: *12 posix_memalign: 00005614404B1200:4096 @16
18.03.2022 18:29:08 [отладка] 10022#0: *12 строка заголовка запроса процесса http
18.03.2022 18:29:08 [отладка] 10022#0: *12 заголовок http: "Content-Type: application/x-www-form-urlencoded"
18.03.2022 18:29:08 [отладка] 10022#0: *12 заголовок http: «Хост: my.localhost.com»
18.03.2022 18:29:08 [отладка] 10022#0: *12 HTTP-заголовок: «Длина содержимого: 22»
18.03.2022 18:29:08 [отладка] 10022#0: *12 заголовок http: «Ожидать: 100-продолжить»
18.03.2022 18:29:08 [отладка] 10022#0: *12 HTTP-заголовок выполнен
18.03.2022 18:29:08 [отладка] 10022#0: *12 общая фаза: 0
18.03.2022 18:29:08 [отладка] 10022#0: *12 фаза перезаписи: 1
18.03.2022 18:29:08 [отладка] 10022#0: *12 тестовое местоположение: "/"
18.03.2022 18:29:08 [отладка] 10022#0: *12 тестовое местоположение: ~ "\.php$"
18.03.2022 18:29:08 [отладка] 10022#0: *12 с использованием конфигурации "/"
18.03.2022 18:29:08 [отладка] 10022#0: *12 http cl:22 max:1048576
18.03.2022 18:29:08 [отладка] 10022#0: *12 фаза перезаписи: 3
18.03.2022 18:29:08 [отладка] 10022#0: *12 регулярное выражение http-скрипта: "^/index\.php?/Test/$"
18.03.2022 18:29:08 [уведомление] 10022#0: *12 "^/index\.php?/Test/$" не соответствует "/", клиент: 1.1.1.1, сервер: my.localhost .com, запрос: "POST /?/Test/ HTTP/1.1", хост: "my.localhost.com"
18.03.2022 18:29:08 [отладка] 10022#0: *12 фаза перезаписи поста: 4
18.03.2022 18:29:08 [отладка] 10022#0: *12 общая фаза: 5
18.03.2022 18:29:08 [отладка] 10022#0: *12 общая фаза: 6
18.03.2022 18:29:08 [отладка] 10022#0: *12 общая фаза: 7
18.03.2022 18:29:08 [отладка] 10022#0: *12 общая фаза: 8
18.03.2022 18:29:08 [отладка] 10022#0: *12 фаза доступа: 9
18.03.2022 18:29:08 [отладка] 10022#0: *12 фаза доступа: 10
18.03.2022 18:29:08 [отладка] 10022#0: *12 фаза доступа: 11
18.03.2022 18:29:08 [отладка] 10022#0: *12 фаза пост-доступа: 12
18.03.2022 18:29:08 [отладка] 10022#0: *12 общая фаза: 13
18.03.2022 18:29:08 [отладка] 10022#0: *12 общая фаза: 14
18.03.2022 18:29:08 [отладка] 10022#0: *12 фаза содержания: 15
18.03.2022 18:29:08 [отладка] 10022#0: *12 фаза содержания: 16
18.03.2022 18:29:08 [отладка] 10022#0: *12 открытый индекс "/var/www/test/public_html/index.php"
18.03.2022 18:29:08 [отладка] 10022#0: *12 внутреннее перенаправление: "/index.php?/Test/"
18.03.2022 18:29:08 [отладка] 10022#0: *12 фаза перезаписи: 1
18.03.2022 18:29:08 [отладка] 10022#0: *12 тестовое местоположение: "/"
18.03.2022 18:29:08 [отладка] 10022#0: *12 тестовое местоположение: ~ "\.php$"
18.03.2022 18:29:08 [отладка] 10022#0: *12 с использованием конфигурации "\.php$"
    

Я хочу таким же образом перенаправить все входящие запросы на другой сервер.

drookie avatar
флаг za
'?' литерал — это разделитель, который стоит между аргументами URI и GET. Получить аргументы хранятся в $arg_ переменные, а не в $query_string; кроме того, в вашем случае имя аргумента Get неправильно сформировано, поскольку оно начинается с косой черты, поэтому вы не можете ссылаться на него. Это количество факторов, которые привели вас к фиаско.
флаг us
Я переформатировал фрагмент конфигурации, который у вас есть в вашем вопросе. Вы уверены, что это так выглядит? Отсутствует закрывающий `}` для корневого местоположения.
djdomi avatar
флаг za
я согласился с drookie, но просто помните, возможно ли использовать поддомен для вашего запроса? поскольку он в основном сохраняет структуру, но может быть передан через proxy_pass на другой сервер
M. Jeremy avatar
флаг ru
@drookie спасибо за ответ. Теро Килканен: Я добавил коды вверху строки, закрывающий тег ниже. Мне жаль. djdomi: Я работал и пытался, но не смог.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.