Как перенаправлять всегда на кокнретную папку, кроме одного случая?

Есть у меня в корне проекта папки backend/index.php и frontend/index.html

Как мне прописать в корне проекта в файле .htaccess правила, чтобы любые запросы в url отправлялись в папку frontend/index.html, а если в url начинается с api, то в backend/index.php? Пробовал по-всякому, но я не знаю .htaccess хорошо и поэтому всё не выходит.

Например вот это:

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On
</IfModule>

<IfModule mod_rewrite.c>
    Rewritecond %{REQUEST_FILENAME} !-f
    RewriteRule (.*) /frontend/index.html?$1 [L,NC]

    RewriteRule /api /backend/index.php
</IfModule>  

Направляет только на фронтенд. Причём там new UrlSearcParams().toString() показывает пустоту..


Ответы (1 шт):

Автор решения: pgood

Направляет только на фронтенд. Причём там new UrlSearcParams().toString() показывает пустоту..

Вы делаете внутренний редирект, переадресация происходит на стороне сервера, тогда как JavaScript видит только то, что есть в адресной строке браузера. Чтобы сделать внешний редирект, можно поставить флаг например [R=301] или напечатать полученный массив гет-параметров серверным скриптом в переменную JavaScript при выводе страницы.

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    Rewritecond %{REQUEST_FILENAME} !-f
    Rewritecond %{REQUEST_URI} !/api
    RewriteRule .* /frontend/index.html [L]

    Rewritecond %{REQUEST_FILENAME} !-f
    Rewritecond %{REQUEST_URI} /api
    RewriteRule .* /backend/index.php [L]
</IfModule>
→ Ссылка