ivanvorobei
@ivanvorobei
iOS разработчик, канал https://t.me/sparrowcode

Как избавиться от public/index.php в URL Laravel?

Выделил отдельный домен api.example.com для всех запросов. В корне лежат папки проектов, один из них решил попробовать написать на Laravel.

Структура выглядит так:
api.example.com
   project_1
   project_2


Запрос должен выглядит так:
api.example.com/project/
А выглядит
api.example.com/project/public/index.php/

Из коробки не работает. Попробовал через htaccess (не получилось), а также переименовывал server.php по туториалам. Все объявленные роуты работают, кроме самого простого:
api.example.com/project/
Он выдает 403 ошибку. А должен welcom view Laravel презентовать.

Но тут все отлично:
api.example.com/project/public/index.php

Должно быть красивое-элегантное решение, все пока похоже на костыль. Что посоветуете?
  • Вопрос задан
  • 3048 просмотров
Решения вопроса 1
ivanvorobei
@ivanvorobei Автор вопроса
iOS разработчик, канал https://t.me/sparrowcode
Спасибо за ответы, решением оказалось стартовать через server.php в корне проекта.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Denormalization
@Denormalization
Чтобы избавиться от public/index.php нужно DocumentRoot направить в папку public/ (очевидно).
Если вы по какой-то причине не хотите менять DocumentRoot, то можно сделать следующее:
- Папки project1, project2 вынести ЗА DocumentRoot (вообще глупая затея класть код проекта в DocumentRoot)
- Сделать симлинки с /path/to/project2/public на DocumentRoot/project2
- В app.php прописать правильный путь к сайту, чтобы laravel правильно генерировал url
- ???
- Радоваться успеху.
Ответ написан
Комментировать
alexey-m-ukolov
@alexey-m-ukolov Куратор тега Laravel
Что посоветуете?
Нормально настроить веб-сервер.
Поскольку свою конфигурацию вы не приложили, это всё, что можно посоветовать.
Ответ написан
root09
@root09
.htaccess в корень сайта
<IfModule mod_rewrite.c>
	RewriteEngine On 
	RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы