Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 31.01.2018 16:03:19

Laravel 5.5. файл .htaccess

Laravel-5.5
PHP  7.0.27
Linux carrot x86_64
Server: nginx

Всем привет!
Можно ли в .htaccess файле настроить так,чтобы при обращении к проекту не было [public] в URL.
Точка входа в Laravel не корневой каталог, а папка [public]  и сейчас у меня проект который на реальном сервере идет как

http://my_domen_name/public

Я же хочу,чтобы сайт работал по:

http://my_domen_nam

Но нужно,чтобы не просто вырезалось `public`, а именно обращение шло правильно/
На локальной машине, когда я разрабатываю проект, я имею доступ к конфигурации сервера и на локалке, в конфигурационном файле прописал, где указываю, что корень проекта это [public] -  DocumentRoot "my_domen_name/public".
На хостинге я такой возможноти не имею, поэтому можно ли так сделать только лишь через свой .htaccess и как должно это быть?

Сейчас мой .htaccess выглядит так:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

и напомню, что обращаюсь я сейчас к проекту как   - http://my_domen_name/public , поскольку http://my_domen_name - будет естественно ошибка "403".

Не в сети

#2 31.01.2018 16:06:28

Re: Laravel 5.5. файл .htaccess

Можно

RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule ((?s).*) public/$1 [L]

Не в сети

#3 31.01.2018 16:17:03

Re: Laravel 5.5. файл .htaccess

RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule ((?s).*) public/$1 [L]

Вместо каких именно строк в моем файле?  Не могли бы помочь.
Я нечно подобное пробовал, но наверное не там прописал/

Не в сети

#4 31.01.2018 16:20:06

Re: Laravel 5.5. файл .htaccess

После этой строки
RewriteEngine on

Добавь эти
RewriteRule ^$ public/ [L]
RewriteRule ((?s).*) public/$1 [L]

Не в сети

#5 31.01.2018 17:01:08

Re: Laravel 5.5. файл .htaccess

нет, так вообще ничего не работает

Не в сети

#6 01.02.2018 17:55:13

Re: Laravel 5.5. файл .htaccess

В корень сайта положите .htaccess ( там где .env и прочие файлы )

PHP
// Содержимое
RewriteEngine On
RewriteRule 
^(.*)$ public/$1

Не в сети

#7 03.02.2018 14:18:25

Re: Laravel 5.5. файл .htaccess

Нет, почему-то не отрабатывает и все по прежнему.

Я дам немного конкретики, вохможно это поможет.

Еть сервер на котором я размещаю проекты его имя отсается в общем URL, т.образом, например, изначально (после того,как я зали проект) проект был доступен как:

server.zzz.com.us/landing.site.loc/public/

Мне было рекомендовано установить в корневую папку моего хостинга (не проекта, а хостинга) дополнительный файл .htaccess, который должен был был удалить / public /, чтобы выглядело вот так :

http://server.zzz.com.us/landing.site.loc

,что мне и нужно! Вот содержимое этого файла:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?server\.zzz\.com\.us$ [NC]
RewriteCond %{REQUEST_FILENAME} !/public/
RewriteRule ^(.*)$ /landing.site.loc/public/$1 [L]

Но. Теперь мой проект доступен по адресу

http://server.zzz.com.us

А мне нужно, как уже говорил, чтобы обращение к проекту было именно

http://server.zzz.com.us/landing.site.loc

Т.е. как мзменить вышеупомянутый .htaccess, чтобы обращаться к проекту

http://server.zzz.com.us/landing.site.loc

Изменено littus (03.02.2018 14:20:19)

Не в сети

#8 03.02.2018 19:25:08

Re: Laravel 5.5. файл .htaccess

У меня все работает, у вас нет. Такого быть не может!

Не в сети

#9 03.02.2018 22:15:55

Re: Laravel 5.5. файл .htaccess

Не проверял, но подозреваю, что нужно заменить

RewriteCond %{REQUEST_FILENAME} !/public/

на

RewriteCond %{REQUEST_FILENAME} !/landing.site.loc/public/

так как эта директива и задает отрезаемую часть пути.

Но вообще лучше не заниматься ерундой и поменять DocumentRoot, это и безопаснее, и проще.

Не в сети

#10 03.02.2018 22:49:38

Re: Laravel 5.5. файл .htaccess

Но вообще лучше не заниматься ерундой и поменять DocumentRoot, это и безопаснее, и проще.

Не везде это возможно...

Изменено fanaticus (03.02.2018 22:56:45)

Не в сети

Подвал раздела