За последние 24 часа нас посетил 22461 программист и 1025 роботов. Сейчас ищут 707 программистов ...

не работает правило в APACHE 2.4 (backend) + NGINX

Тема в разделе "Настройка веб-сервера", создана пользователем ufaclub, 28 окт 2019.

  1. ufaclub

    ufaclub Активный пользователь

    С нами с:
    29 авг 2011
    Сообщения:
    55
    Симпатии:
    0
    стоит связка APACHE 2.4 (backend) + NGINX (frontend)

    раньше на (APACHE 2.4) был вот такой простенький .htaccess у сайта.


    RewriteEngine on
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1

    и сайта самодельный ЧПУ работал как надо


    т.е набрал в адресе сайта /product/list/

    открывалась страница сайта

    а сейчас открывается папка сайта /product/list/ и надпись File not found.

    т.е открывается реальная физическая папка которой нет. почему не работает правило



    RewriteEngine on

    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d

    RewriteRule ^(.*)$ index.php/$1


    как я понимаю что теперь сначала работать стал NGINX (frontend) а потом уже

    APACHE 2.4 (backend)


    как мне сделать чтобы работали старые правила?

    я думаю это где то в настройках NGINX отключить? помогите пожалуйста кто разбирается
     
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.790
    Симпатии:
    649
  3. ufaclub

    ufaclub Активный пользователь

    С нами с:
    29 авг 2011
    Сообщения:
    55
    Симпатии:
    0
    маленько не понял.
    мне нужно
    в

    /etc/php5/fpm/php.ini:

    выставить

    cgi.fix_pathinfo =0
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.790
    Симпатии:
    649
    P.P.S. Хотя php-fpm – это не совсем то, поэтому можно и покликать ;)
     
  5. ufaclub

    ufaclub Активный пользователь

    С нами с:
    29 авг 2011
    Сообщения:
    55
    Симпатии:
    0
    все решил

    заменил
    RewriteRule ^(.*) index.php?do=/$1
    на
    RewriteRule ^(.*)$ index.php/$1
    не понял что это значит но работает теперь как надо))
     
  6. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.790
    Симпатии:
    649
    Ты такое правило и показывал в стартовом посте ;)
    --- Добавлено ---
    Вообще и должно работать «как надо», т.к. до апача адрес добирается, как обычный, а уже внутри него начинаются пляски с бубном с PATH_INFO.
     
  7. ufaclub

    ufaclub Активный пользователь

    С нами с:
    29 авг 2011
    Сообщения:
    55
    Симпатии:
    0
    RewriteRule ^(.*)$ index.php/$1

    заменил на

    RewriteRule ^(.*) index.php?do=/$1
     
  8. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.790
    Симпатии:
    649
    Так немного лучше, если движок понимает параметр do, но все равно не айс, правда, это уже не относится к данному вопросу.
    --- Добавлено ---
    P.S. Благое неведение – это конечно хорошо, но наверно лучше транслировать во фронт (index.php) и возможные исходные GET-параметры. Для этого нужно добавить в правило флаг QSA.