Назад | Перейти на главную страницу

htaccess, mod_rewrite, удалить часть из URL

Я хочу получить доступ domain.com/api/(.*) вместо того domain.com/public/api/(.*)

Структура каталога:

domain.com
__folder1
__folder2
__public
____api
______.htaccess2
____afolder1
____afolder2
____index.html
__folder3
__file1
__file2
__.htaccess1

.htaccess1

RewriteEngine on
SetEnv APPLICATION_ENV    production

RewriteRule ^$ /public/ [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/public/
RewriteCond %{REQUEST_URI} !^/api/
RewriteRule ^(.*)$ /public/$1 [L]

.htaccess2

RewriteEngine on
SetEnv APPLICATION_ENV    production

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]

Я пробовал разные комбинации и пришел к этой самой простой. Я попробовал псевдоним, поместил папку api в корневой каталог и т. Д.

Отметим, что index.html из общей папки сначала загружается на domain.com, общая папка - это корень документа.