@nurik_6
Back-end PHP Разработчик.

Как перенаправить все запросы например из site.loc/ в site.loc/api с помощью .htaccess?

Здравствуйте. Не могу понять как перенаправить все запросы, чтобы приложение считало свой base url как site.loc/api .
На основном сайте находится wordpress, а в поддиректории (на самом деле подключается как апач конфиг api.conf ) находится приложение yii2.
Как ПРАВИЛЬНЕЕ всего это сделать ? Буду благодарен за примеры для файла .htaccess
DocumentRoot смотрит в папку web приложения yii2. Шаблон basic.

Вот содержимое api.conf:

<Directory "/var/www/api/web">
    Options FollowSymLinks
    DirectoryIndex index.php
    Require all granted
</Directory>

Alias /disp /var/www/api/web
  • Вопрос задан
  • 626 просмотров
Пригласить эксперта
Ответы на вопрос 2
impwx
@impwx
Разработчик
Попробуйте с помощью mod_rewrite. Для этого он должен быть подключен в качестве модуля (как правило, это делается по умолчанию).

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} !api/.*
RewriteRule ^/(.+) /api/$1 [NC,L]

Проверить не могу, если не заработает сразу - можно попробовать поубирать-подобавлять слеши.
Ответ написан
Комментировать
@nurik_6 Автор вопроса
Back-end PHP Разработчик.
А если файл .htaccess находится за пределами корневой директории прописанной в конфиге apache, будет ли он действовать на поддериктории ?
В моем случае получается что мой рут это /var/www/api/web
Но в директории /var/www/api тоже лежит .htaccess файл. Будет ли в этом случае действовать файл .htaccess из родительской директории на директорию /web ?
При условии, что в основном конфиге apache DocumentRoot это /var/www, но для api.conf был задан, свой DocumentRoot как /var/www/api/web
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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