LINUX.ORG.RU

История изменений

Исправление Xintrea, (текущая версия) :

Получается, она бы там обрабатывалась в location / в режиме показа индекса соответствующей директории.

А, я частично понял. Я то думал что все можно разрулить только фильтрацией локаций, и только их показывал. Перед локациями у меня прописано вот что:

    index index.php index.html index.htm;

    # Редирект с контроллера главной страницы на стартовый URL
    rewrite ^(.*)/site/page/index/main$ http://имя_сайта.ru permanent;

    if (!-e $request_filename) {
        rewrite "^/(.*)$" /index.php?$1 last;
    }

То есть, все что запрашивается по ссылке без php, определяется как обращение к директории/файлу. И это обращение реврайтится на использование /index.php, а сам линк передается как параметр GET-запроса. Это рекомендованная настройка фреймверка, который у меня используется.

Я включил отладку, и увидел, как преобразуется строка запроса https://имя_сайта/site/page/index/guestbook. Получается вот так:
18:15:22 [debug] 101227#101227:
*5 http upstream request: "/index.php?site/page/index/guestbook"

Увидев это, я подправил локацию на такую:
    location ^~ /index.php?site/page/index/guestbook {
        limit_req zone=ipAddrZone burst=4 nodelay;
        try_files . @php; # Вызов именованной локации
    }

Перегрузил nginx. Но и такая настройка не блокирует частые обращения к этой странице.

Тогда я попробовал проверить, что будет если я в строке браузера напишу напрямую эту же локацию:
https://имя_сайта/index.php?site/page/index/guestbook

Я то думал, что увижу страницу гостевой, но нет - меня перебросило на главную страницу сайта. Удивительно.

Тогда я написал в строке браузера то же самое, только поставив косую «/» после знака "?", вот так:
https://имя_сайта/index.php?/site/page/index/guestbook

И у меня отобразилась гостевая книга. Но частые запросы на этот «прямой» URL все так же не блокируются.

* * *

Теперь у меня помимо вопроса почему не работает блокировка частых обращений к странице, появился другой вопрос:

Почему URL /index.php?site/page/index/guestbook, получаемый в глубинах Nginx, отображает гостевую страницу, но этот же URL, будучи написанный напрямую в строке браузера - выкидывает на главную?

Исправление Xintrea, :

Получается, она бы там обрабатывалась в location / в режиме показа индекса соответствующей директории.

А, я частично понял. Я то думал что все можно разрулить только фильтрацией локаций, и только их показывал. Перед локациями у меня прописано вот что:

    index index.php index.html index.htm;

    # Редирект с контроллера главной страницы на стартовый URL
    rewrite ^(.*)/site/page/index/main$ http://имя_сайта.ru permanent;

    if (!-e $request_filename) {
        rewrite "^/(.*)$" /index.php?$1 last;
    }

То есть, все что запрашивается по ссылке без php, определяется как обращение к директории/файлу. И это обращение реврайтится на использование /index.php, а сам линк передается как параметр GET-запроса. Это рекомендованная настройка фреймверка, который у меня используется.

Я включил отладку, и увидел, как преобразуется строка запроса https://имя_сайта/site/page/index/guestbook. Получается вот так:
18:15:22 [debug] 101227#101227:
*5 http upstream request: "/index.php?site/page/index/guestbook"

Увидев это, я подправил локацию на такую:
    location ^~ /index.php?site/page/index/guestbook {
        limit_req zone=ipAddrZone burst=4 nodelay;
        try_files . @php; # Вызов именованной локации
    }

Перегрузил nginx. Но и такая настройка не блокирует частые обращения к этой странице.

Тогда я попробовал проверить, что будет если я в строке браузера напишу напрямую эту же локацию:
https://имя_сайта/index.php?site/page/index/guestbook

Я то думал, что увижу страницу гостевой, но нет - меня перебросило на главную страницу сайта. Удивительно.

Тогда я написал в строке браузера то же самое, только поставив косую «/» после знака "?", вот так:
https://имя_сайта/index.php?/site/page/index/guestbook

И у меня отобразилась гостевая книга. Но частые запросы на этот «прямой» URL все так же не блокируются.

* * *

Теперь у меня помимо вопроса почему не работает блокировка частых запросов появился другой вопрос:

Почему URL /index.php?site/page/index/guestbook, получаемый в глубинах Nginx, отображает гостевую страницу, но этот же URL, будучи написанный напрямую в строке браузера - выкидывает на главную?

Исправление Xintrea, :

Получается, она бы там обрабатывалась в location / в режиме показа индекса соответствующей директории.

А, я частично понял. Я то думал что все можно разрулить только фильтрацией локаций, и только их показывал. Перед локациями у меня прописано вот что:

    index index.php index.html index.htm;

    # Редирект с контроллера главной страницы на стартовый URL
    rewrite ^(.*)/site/page/index/main$ http://имя_сайта.ru permanent;

    if (!-e $request_filename) {
        rewrite "^/(.*)$" /index.php?$1 last;
    }

То есть, все что запрашивается по ссылке без php, определяется как обращение к директории/файлу. И это обращение реврайтится на использование /index.php, а сам линк передается как параметр GET-запроса. Это рекомендованная настройка фреймверка, который у меня используется.

Я включил отладку, и увидел, как преобразуется строка запроса https://имя_сайта/site/page/index/guestbook. Получается вот так:
18:15:22 [debug] 101227#101227:
*5 http upstream request: "/index.php?site/page/index/guestbook"

Увидев это, я подправил локацию на такую:
    location ^~ /index.php?site/page/index/guestbook {
        limit_req zone=ipAddrZone burst=4 nodelay;
        try_files . @php; # Вызов именованной локации
    }

Перегрузил nginx. Но и такая настройка не блокирует частые обращения к этой странице.

Тогда я попробовал проверить, что будет если я в строке браузера напишу напрямую эту же локацию:
https://имя_сайта/index.php?site/page/index/guestbook

Я то думал, что увижу страницу гостевой, но нет - меня перебросило на главную страницу сайта. Удивительно.

Тогда я написал в строке браузера то же самое, только поставив косую «/» после знака "?", вот так:
https://имя_сайта/index.php?/site/page/index/guestbook

И у меня отобразилась гостевая книга. Но частые запросы на этот «прямой» URL все так же не блокируются.

Теперь у меня помимо вопроса почему не работает блокировка частых запросов появился другой вопрос:

Почему URL /index.php?site/page/index/guestbook, получаемый в глубинах Nginx, отображает гостевую страницу, но этот же URL, будучи написанный напрямую в строке браузера - выкидывает на главную?

Исправление Xintrea, :

Получается, она бы там обрабатывалась в location / в режиме показа индекса соответствующей директории.

А, я частично понял. Я то думал что все можно разрулить только фильтрацией локаций, и только их показывал. Перед локациями у меня прописано вот что:

    index index.php index.html index.htm;

    # Редирект с контроллера главной страницы на стартовый URL
    rewrite ^(.*)/site/page/index/main$ http://имя_сайта.ru permanent;

    if (!-e $request_filename) {
        rewrite "^/(.*)$" /index.php?$1 last;
    }


То есть, все что запрашивается по ссылке без php, определяется как обращение к директории/файлу. И это обращение реврайтится на использование /index.php, а сам линк передается как параметр GET-запроса. Это рекомендованная настройка фреймверка, который у меня используется.

Я включил отладку, и увидел, как преобразуется строка запроса https://имя_сайта/site/page/index/guestbook. Получается вот так:
18:15:22 [debug] 101227#101227:
*5 http upstream request: "/index.php?site/page/index/guestbook"


Увидев это, я подправил локацию на такую:
    location ^~ /index.php?site/page/index/guestbook {
        limit_req zone=ipAddrZone burst=4 nodelay;
        try_files . @php; # Вызов именованной локации
    }


Перегрузил nginx. Но и такая настройка не блокирует частые обращения к этой странице.

Тогда я попробовал проверить, что будет если я в строке браузера напишу напрямую эту же локацию:
https://имя_сайта/index.php?site/page/index/guestbook

Я то думал, что увижу страницу гостевой, но нет - меня перебросило на главную страницу сайта. Удивительно.

Тогда я написал в строке браузера то же самое, только поставив косую «/» после знака "?", вот так:
https://имя_сайта/index.php?/site/page/index/guestbook

И у меня отобразилась гостевая книга. Но частые запросы на этот «прямой» URL все так же не блокируются.

Теперь у меня помимо вопроса почему не работает блокировка частых запросов появился другой вопрос:

Почему URL /index.php?site/page/index/guestbook, получаемый в глубинах Nginx, отображает гостевую страницу, но этот же URL, будучи написанный напрямую в строке браузера - выкидывает на главную?

Исправление Xintrea, :

Получается, она бы там обрабатывалась в location / в режиме показа индекса соответствующей директории.

А, я частично понял. Я то думал что все можно разрулить только фильтрацией локаций, и только их показывал. Перед локациями у меня прописано вот что:

    index index.php index.html index.htm;

    # Редирект с контроллера главной страницы на стартовый URL
    rewrite ^(.*)/site/page/index/main$ http://имя_сайта.ru permanent;

    if (!-e $request_filename) {
        rewrite "^/(.*)$" /index.php?$1 last;
    }


То есть, все что запрашивается по ссылке без php, определяется как обращение к директории/файлу. И это обращение реврайтится на использование /index.php, а сам линк передается как параметр GET-запроса. Это рекомендованная настройка фреймверка, который у меня используется.

Я включил отладку, и увидел, как преобразуется строка запроса https://имя_сайта/site/page/index/guestbook. Получается вот так:
18:15:22 [debug] 101227#101227:
*5 http upstream request: "/index.php?site/page/index/guestbook"


Увидев это, я подправил локацию на такую:
    location ^~ /index.php?site/page/index/guestbook {
        limit_req zone=ipAddrZone burst=4 nodelay;
        try_files . @php; # Вызов именованной локации
    }


Перегрузил nginx. Но и такая настройка не блокирует частые обращения к этой странице.

Тогда я попробовал проверить, что будет если я в строке браузера напишу напрямую эту же локацию:
https://имя_сайта/index.php?site/page/index/guestbook


Я то думал, что увижу страницу гостевой, но нет - меня перебросило на главную страницу сайта. Удивительно.

Тогда я написал в строке браузера то же самое, только поставив косую «/» после знака "?", вот так:
https://имя_сайта/index.php?/site/page/index/guestbook

И у меня отобразилась гостевая книга. Но частые запросы на этот «прямой» URL все так же не блокируются.

Теперь у меня помимо вопроса почему не работает блокировка частых запросов появился другой вопрос:

А почему URL /index.php?site/page/index/guestbook, получаемый в глубинах Nginx, отображает гостевую страницу, а тот же URL, написанный напрямую в строке браузера - выкидывает на главную?

Исходная версия Xintrea, :

Получается, она бы там обрабатывалась в location / в режиме показа индекса соответствующей директории.

А, я частично понял. Я то думал что все можно разрулить только фильтрацией локаций, и только их показывал. Перед локациями у меня прописано вот что:

    index index.php index.html index.htm;

    # Редирект с контроллера главной страницы на стартовый URL
    rewrite ^(.*)/site/page/index/main$ http://имя_сайта.ru permanent;

    if (!-e $request_filename) {
        rewrite "^/(.*)$" /index.php?$1 last;
    }


То есть, все что запрашивается по ссылке без php, определяется как обращение к директории/файлу. И это обращение реврайтится на использование /index.php, а сам линк передается как параметр GET-запроса. Это рекомендованная настройка фреймверка, который у меня используется.

Я включил отладку, и увидел, как преобразуется строка запроса https://имя_сайта/site/page/index/guestbook. Получается вот так:
18:15:22 [debug] 101227#101227:
*5 http upstream request: "/index.php?site/page/index/guestbook"


Увидев это, я подправил локацию на такую:
    location ^~ /index.php?site/page/index/guestbook {
        limit_req zone=ipAddrZone burst=4 nodelay;
        try_files . @php; # Вызов именованной локации
    }


Перегрузил nginx. Но и такая настройка не блокирует частые обращения к этой странице.

Тогда я попробовал проверить, что будет если я в строке браузера напишу напрямую эту же локацию:

https://имя_сайта/index.php?site/page/index/guestbook


Я то думал, что увижу страницу гостевой, но нет - меня перебросило на главную страницу сайта. Удивительно.

Тогда я написал в строке браузера то же самое, только поставив косую «/» после знака "?", вот так:

https://имя_сайта/index.php?/site/page/index/guestbook

И у меня отобразилась гостевая книга. Но частые запросы на этот «прямой» URL все так же не блокируются.

Теперь у меня помимо вопроса почему не работает блокировка частых запросов появился другой вопрос:

А почему URL /index.php?site/page/index/guestbook, получаемый в глубинах Nginx, отображает гостевую страницу, а тот же URL, написанный напрямую в строке браузера - выкидывает на главную?