Я думаю, что вы можете использовать отдельный .htaccess
файл in your API folder
с правилом, подобным следующему:
RewriteRule ^$ /public [R=301,L]
Так что это должно перенаправить внутренне в подпапку public
ROOT
| --api/
| |-- .htaccess
| |-- public/
| |-- index.php
|-- backoffice/
Update1
Я думаю, в вашем случае это должно работать
RewriteEngine On
RewriteBase /api/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^api/(.*)$ /api/public/$1 [L]
Это зависит также от используемой вами системы и предустановки.
Update2
Я провел некоторый тест на XAMPP и получил следующий результат
Поместите ваш .htaccess
в ROOT folder
, delete
все остальные .htaccess files in subfolders
.Переименуйте api
в _api
или что-то еще, как вам нравится
ROOT
| --.htaccess
| --/_api/ <<<------- rename
| |-- /public/
| |-- index.php
|-- /backoffice/
, добавьте .htaccess
в root
RewriteEngine On
Options FollowSymLinks
RewriteBase /
DirectoryIndex index.php index.html
RewriteRule ^api2/(.*)$ /api/public/$1 [B,L,QSA]
Позвоните как раньше yoursite.com/api
Этот сценарий работал на моей тестовой системе, как и ожидалось.Попробуйте.