Просмотр поста

.
Rakovskiy
The Fast, Secure and Professional - Yii2

Не получается переделать правила htaccess для nginx

Имеется следующая структура:

frontend/
    web/
        index.php

backend/
    web/
        index.php


В корневой директории был htaccess со следующим содержимым:

# Backend redirect
    RewriteCond %{REQUEST_URI} ^/backend
    RewriteRule ^backend/(.*)$ backend/web/$1 [L]

    # Frontend redirect
    RewriteCond %{REQUEST_URI} ^(.*)$
    RewriteRule ^(.*)$ frontend/web/$1


Т.е. все запросы начиная с /backend перенаправлялись на backend/web/ а остальные на frontend/web/

Далее в backend/web и frontend/web имеем htaccess:

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

    RewriteRule . index.php


Если это не прямое обращение к файлу, то все запросы идут на index.php

Но теперь не получается всё это заточить под nginx, делаю так:

location / {
if ($request_uri ~ "^/backend"){
rewrite ^/backend/(.*)$ /backend/web/$1 break;
}
rewrite ^(.*)$ /frontend/web/$1;
}

location /frontend/web/ {
if (!-e $request_filename){
rewrite ^(.*)$ index.php;
}
}

location /backend/web/ {
if (!-e $request_filename){
rewrite ^(.*)$ index.php;
}
}


Получается, что запрос вида site.ru работает, а site.ru/page не работает. Значит не пашет rewrite ^(.*)$ index.php
Пробовал и так rewrite . index.php но ничего не изменяется