Я хочу перенаправить трафик для файлов / каталогов, которые не существуют, однако мой маршрутизатор делает что-то странное с 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