Правило
[
'pattern' => 'image/get/<filepath:.+>',
'route' => 'image/get,
],
htaccess в корнеOptions +FollowSymlinks
# Включаем mod_rewrite
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/upload [NC]
RewriteCond %{REQUEST_URI} \.(jpg|png|gif)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^upload\/?(.+) /image/get/$1 [NC,L]
# Если запрос начинается с /admin, то заменяем на /backend/web/
RewriteCond %{REQUEST_URI} ^/admin [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^admin\/?(.*) /backend/web/$1 [NC,L]
# Добавляем другой запрос /frontend/web/$1
RewriteCond %{REQUEST_URI} !^/(frontend/web|backend/web) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) /frontend/web/$1
htaccess в папке frontend/web# Mod_Autoindex
<IfModule mod_autoindex.c>
# Запрещаем просмотр содержимого папок
Options -Indexes
</IfModule>
# Mod_Rewrite
<IfModule mod_rewrite.c>
Options +FollowSymlinks
# Включаем mod_rewrite
RewriteEngine On
# Если это папка или файл, открываем её/его
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# В противном случае перенаправляем на index.php
RewriteRule . index.php
</IfModule>
Обращаюсь
1) по адресу /upload/file.jpg , получаю 404
2) по адресу /image/get/file.jpg , получаю результат работы контроллера.
3) добавляю в первый редирект R=301 , получаю результат работы контроллера, но с редиректом, а надо без.
Причем ["REDIRECT_URL"] и в 1, и в 2 - одинаковые
"/frontend/web/image/get/file.jpg"
"/frontend/web/image/get/file.jpg"
Когда упираешься в стену на ровном месте, понимаешь, что чё-то не понимаешь и это просто бесит (