Как удалить public из URL в laravel 5.2 - PullRequest
0 голосов
/ 08 декабря 2018

Я использую Laravel 5.2 на своем сервере общего хостинга.Я хотел бы удалить public из url, не меняя server.php на index.php в корневом каталоге, так как .env и другие файлы общедоступны.Мой .htaccess выглядит ниже:

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

RewriteEngine On

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,NC]

# Handle Front Controller...

RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L,QSA]
RewriteRule ^(css|js|images|media)/(.*)$ /public/$1/$2 [L,NC]

</IfModule>

Ответы [ 4 ]

0 голосов
/ 04 февраля 2019

В корневой папке создайте файл .htaccess с:

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
0 голосов
/ 08 декабря 2018

Лучшим решением для этого будет указание корня вашего документа apache на общую папку laravel.Но, как вы сказали, вы используете виртуальный хостинг, тогда может не будет для вас возможным.

Теперь для доступа к приложению laravel без публичного доступа в URL следуйте этому вопросу Laravel 5 - Удалитьpublic from URL

Кроме того, вас беспокоят другие папки, такие как app, config и т. д., которые не будут доступны из браузера.Поэтому для этого вы можете поместить файл .htaccess с содержимым Deny from all в каждую папку, доступ к которой вы хотите заблокировать из браузера.

0 голосов
/ 08 декабря 2018

Создайте новый файл .htaccess в корневом каталоге и вставьте следующий код

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^public
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php56” package as the default “PHP” programming language.
<IfModule mime_module>
  AddType application/x-httpd-ea-php56___lsphp .php .php5 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit
0 голосов
/ 08 декабря 2018

Вам нужно указать свой домен в общедоступной папке из cpanel.

или

Переместите файл .htaccess из каталога / public в корневой каталог и замените его содержимое следующим кодом:

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

    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} -d [OR]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ ^$1 [N]

    RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
    RewriteRule ^(.*)$ public/$1 

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ server.php

</IfModule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...