@hollanditkzn

Как мне сделать url backend отдельную ссылку?

У меня вопрос, как стоит написать apache чтобы было 2 ссылки / для frontend а /backend для backend
Вот примерно попробовал сделать так
<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On
</IfModule>
 
<IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_URI} ^/.*
    RewriteRule ^(.*)$ frontend/web/$1 [L]

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

    RewriteCond %{REQUEST_URI} !^frontend/web/
    RewriteCond %{REQUEST_FILENAME} !-f [OR]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^.*$ frontend/web/index.php
</IfModule>
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
Добрый день.
Для этого надо использовать два .htaccess, один в корне проекта, второй в web.
В директории web(frontend и backend) достаточно такого .htaccess
RewriteEngine on

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

RewriteRule . index.php

В корне проекта .htaccess должен быть следующего содержания:
RewriteEngine On

# End the processing, if a rewrite already occurred
#RewriteRule ^(frontend|backend)/web/ - [L]

# Handle the case of backend, skip ([S=1]) the following rule, if current matched
RewriteCond %{REQUEST_URI} ^/(name_folder/backend)
RewriteRule ^backend(/.*)?$ backend/web/$1 [L]

# handle the case of frontend
RewriteCond %{REQUEST_URI} ^/(name_folder)
RewriteRule ^(.*)$ frontend/web/$1 [L]

name_folder - имя директории, если проект находится в поддиректории сайта.

p.s.
Кстати, забыл уточнить. У Вас basic шаблон или advanced? Примеры htaccess я привёл для advanced. А если у Вас basic, то решается через модули, как Лентюй подсказал.
С модулями решается чуть иначе.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы