@yii16

Какой htaccess использовать для Yii2 advanced?

Есть htaccess в advanced приложении:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]

Всё работет для frontend. Как при наличии в пути сайта domain.com/admin пребросить запрос в backend/web?

Пробовал такой htaccess
spoiler
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
 
# Если запрос начинается с /admin, то заменяем на /backend/web/
RewriteCond %{REQUEST_URI} ^/admin
RewriteRule ^admin\/?(.*) /backend/web/$1
 
# Добавляем другой запрос /frontend/web/$1
RewriteCond %{REQUEST_URI} !^/(frontend/web|backend/web|admin)
RewriteRule (.*) /frontend/web/$1
 
# Если frontend запрос
RewriteCond %{REQUEST_URI} ^/frontend/web
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /frontend/web/index.php
 
# Если backend запрос
RewriteCond %{REQUEST_URI} ^/backend/web
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /backend/web/index.php

Пишет 500 Internal Server Error, в логах ошибок нет

Если сервер смотрит в директорию корень_проекта/frontend/web то почему мы ставим редирект на
RewriteRule . /backend/web/index.php
надо ставить на
RewriteRule . ../../backend/web/index.php
но тогда сервер вместо 500 отдаёт 400 ошибку:
Bad Request Your browser sent a request that this server could not understand.

P.S. В backend/web нужно ли какой-то htaccess кидать?
  • Вопрос задан
  • 2104 просмотра
Решения вопроса 2
slo_nik
@slo_nik Куратор тега Yii
Добрый день.
Этот .htaccess в корень приложения.
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/(admin)
RewriteRule ^admin(\/?.*)$ backend/web/$1 [L]
 
RewriteCond %{REQUEST_URI} ^/
RewriteRule ^(\/?.*)$ frontend/web/$1 [L]

В frontend и backend оставить такой
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
Ответ написан
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
а не проще создать папку admin и кинуть в нее стандартный htaccess и точку входа index.php Конечно в index.php надо будет немного пути поправить, что бы в backend стучался. Меньше редиректов и логичнее.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы