Два прохода в одном файле htaccess - PullRequest
0 голосов
/ 29 мая 2019

Я хочу перенаправить трафик для файлов / каталогов, которые не существуют, однако мой маршрутизатор делает что-то странное с uris с двумя именами файлов. Поэтому я хочу явно изменить пример URI:

https://example.com/testsite/index.php => https://example.com/testsite?returnPath=/index.php

Тогда внутри я бы перенаправил на https://example.com/new/index.php/testsite

моя корневая структура выглядит так:

-web:
    .htaccess
    -new:
         index.php

Мой файл htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{QUERY_STRING} !returnPath=*
RewriteRule ^([A-Za-z]*)/(.*)$ /$1?returnPath=/$2 [QSA,NC,R=302,L] #explicit redirect (what other flags do I use here?)
RewriteCond %{REQUEST_URI} !-d
RewriteRule (.*) /new/index.php/$1 [QSA,L,NC]

Очевидно, что если оставить флаг L в первом правиле, произойдет перенаправление без обработки каких-либо других правил.

Но, оставив его, обрабатывает второе правило, но не меняет показанное uri

...