@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>
  • Вопрос задан
  • 38 просмотров
Решения вопроса 1
  • slo_nik
    @slo_nik
    Добрый день.
    Для этого надо использовать два .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, то решается через модули, как Лентюй подсказал.
    С модулями решается чуть иначе.
    Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы