2017-01-17 6 views
2

У меня есть сайт, я бег на локальном хосте http://example и у меня есть каталог в корневом каталоге, который содержит мой апи поэтому http://example/api.htaccess перенаправлять в подкаталог

В папке api У меня есть мой корневой каталог для API, который находится в каталоге public. поэтому /api/public/....

Я хочу иметь .htaccess, который перенаправляет пользователя в каталог public, когда он нажимает http://example/api/{api parameters}. Так что я могу иметь чистый URL без необходимости писать эту http://example/api/public/{api parameters}

Я попытался это, но безрезультатно

RewriteEngine On 

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

Я получил выше от SO post, но все еще не мог заставить его работать.

+0

Просто удалите строку '' RewriteCond'', и все будет в порядке. – arkascha

+0

Хотя вопрос в том, что вы на самом деле называете «параметрами api» и как обращаться с ними ... – arkascha

+0

@arkascha не работает. – bos570

ответ

0

Попробуйте использовать:

RewriteEngine On 
RewriteBase /api/public/ 

Цитируя stack overflow answer, "Имея RewriteBase там, вы делаете относительный путь отрываются параметр RewriteBase."

С помощью этого метода, я считаю, вам придется переписать все пути, которые не попадают под базовый каталог. Если это проблема, вы можете создать правило для каждой страницы.

Обновление: Возможно, вам удастся написать правило, проверяющее файлы на этом пути до того, как он проверяет относительный путь.

Смежные вопросы