Как структурировать Laravel .htaccess, чтобы он указывал прямо на общую папку и удалял index.php
Я пытаюсь создать файлы htaccess, которые можно использовать на сервере разработки и производства. Структура папок сервера разработки выглядит следующим образом:
Server Root (www)
-laravel
-public
-index.php
-controller/method... etc
Рабочий сервер не имеет корня документа, который не является общедоступным. Я развертываю это на appfog, и для этого требуется.htaccess. Это упоминается в документации Appfog: https://docs.appfog.com/languages/php
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.domain.com$
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]
Структура папок производственного сервера будет выглядеть следующим образом (она просто удаляет папку laravel):
Server Root (www)
-public
-index.php
-controller/method... etc
Я хотел бы добиться этого без использования Apache httpd, только с помощью htaccess, потому что среда разработки будет постоянно меняться.
Я хотел бы иметь возможность сделать это:
- Визит
http://localhost/laravel/X/X
(где X это что-нибудь) - Получить перенаправлено на
http://localhost/laravel/public/index.php/X/X
(с public/index.php, скрытым от URL, чтобы предотвратить дублирование URL) - Визит
http://example.com/X/X
(где X это что-нибудь) - Получить перенаправлено на
http://example.com/public/index.php/X/X
(с public/index.php, скрытым от URL, чтобы предотвратить дублирование URL) - Запретить доступ к каталогам / файлам вне общей папки и запретить доступ к каталогам в общей папке, но не к файлам.
- Все без необходимости менять конфигурации между производством и разработкой
Вопрос, как мне это сделать и сколько.htaccess файлов мне нужно?
Мой прогресс до сих пор проходил через документацию laravel и это сообщение на форуме, но независимо от того, что я делаю, я получаю либо ошибки 404s, либо 500 ошибок сервера, когда просто захожу на http://localhost/laravel/
2 ответа
Вы бы поместили это в корень вашего приложения.
- application/
- public/
- .htaccess (already provided by laravel)
- index.php/
- .htaccess (the one specified by appfog)
Все должно работать нормально.