стоит связка 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 отключить? помогите пожалуйста кто разбирается
Использование PATH_INFO – идиотизм, по-моему. Вот гляньте (может, поможет): https://stackoverflow.com/questions/20848899/nginx-phpfpm-path-info-always-empty --- Добавлено --- P.S. Нашел в яше по запросу «nginx apache path_info». Дальше кликать не стал.
все решил заменил RewriteRule ^(.*) index.php?do=/$1 на RewriteRule ^(.*)$ index.php/$1 не понял что это значит но работает теперь как надо))
Ты такое правило и показывал в стартовом посте --- Добавлено --- Вообще и должно работать «как надо», т.к. до апача адрес добирается, как обычный, а уже внутри него начинаются пляски с бубном с PATH_INFO.
Так немного лучше, если движок понимает параметр do, но все равно не айс, правда, это уже не относится к данному вопросу. --- Добавлено --- P.S. Благое неведение – это конечно хорошо, но наверно лучше транслировать во фронт (index.php) и возможные исходные GET-параметры. Для этого нужно добавить в правило флаг QSA.