Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
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".
Не в сети
Можно
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule ((?s).*) public/$1 [L]
Не в сети
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule ((?s).*) public/$1 [L]
Вместо каких именно строк в моем файле? Не могли бы помочь.
Я нечно подобное пробовал, но наверное не там прописал/
Не в сети
После этой строки
RewriteEngine on
Добавь эти
RewriteRule ^$ public/ [L]
RewriteRule ((?s).*) public/$1 [L]
Не в сети
нет, так вообще ничего не работает
Не в сети
Не в сети
Нет, почему-то не отрабатывает и все по прежнему.
Я дам немного конкретики, вохможно это поможет.
Еть сервер на котором я размещаю проекты его имя отсается в общем 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)
Не в сети
Не в сети
Не проверял, но подозреваю, что нужно заменить
RewriteCond %{REQUEST_FILENAME} !/public/
на
RewriteCond %{REQUEST_FILENAME} !/landing.site.loc/public/
так как эта директива и задает отрезаемую часть пути.
Но вообще лучше не заниматься ерундой и поменять DocumentRoot, это и безопаснее, и проще.
Не в сети
Но вообще лучше не заниматься ерундой и поменять DocumentRoot, это и безопаснее, и проще.
Не везде это возможно...
Изменено fanaticus (03.02.2018 22:56:45)
Не в сети
Страницы 1