Итак, я запускаю xampp в Windows. В настоящее время я пытаюсь познакомиться с картой laravel. Теперь, когда это указано. Как я могу получить доступ к моему приложению / веб-сайту laravel прямо в корне?
Пример,
Какие-нибудь хорошие решения для этого? мне нужно добавить файл .htacess в корневую папку laravel? (а не публичный).
Какие-либо предложения?
Самый простой способ – создать файл .htaccess
в вашем корне Laravel со следующим содержимым:
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*)$ public/$1 [L] </IfModule>
Он должен быть перенаправлен легко.
Ссылка: https://coderwall.com/p/erbaig/laravel-s-htaccess-to-remove-public-from-url
Вот как я это сделал.
Windows может быть реальной PITA при попытке редактировать файл Hosts из-за контроля учетных записей пользователей. Поскольку я работаю над всеми видами небольших хобби проектов, я должен постоянно редактировать этот файл, так что это то, что я делаю.
В нижней части файла добавьте следующее:
127.0.0.1 laravel.dev
Это указывает Windows указывать веб-браузер на localhost всякий раз, когда вы вводите laravel.dev в адресную строку браузера.
В нижней части файла добавьте следующее: (Я предполагаю, что xampp установлен в корне диска D:
<VirtualHost *:80> ServerName laravel.dev DocumentRoot "D:/xampp/htdocs/laravel/public" <Directory "D:/xampp/htdocs/laravel/public"> </Directory> </VirtualHost>
Добавьте файл htaccess в свою папку laravel / public (если его еще нет). Я думаю, что файл htaccess по умолчанию, который поставляется с L4, выглядит так:
Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]
http://laravel.dev
http://laravel.dev/about
Переместите содержимое папки / общедоступной папки вниз.
Вам нужно будет обновить строки include в index.php, чтобы указать на правильное местоположение. (если он понижен на уровне, удалите «../»).
ОБНОВЛЕНИЕ: этот метод также работает с Laravel 5
Вот моя структура каталогов,
/laravel/ ... app ... bootstrap ... public ... etc
Следуйте этим простым шагам
требуется DIR . '/ .. / bootstrap / autoload.php';
в
требуется DIR . '/ bootstrap / autoload.php';
а также
$ app = require_once DIR . '/ .. / bootstrap / start.php';
в
$ app = require_once DIR . '/ bootstrap / start.php';
'public' => DIR . '/ .. / public',
в
'public' => DIR . '/ ..',
и все, теперь попробуйте http: // localhost / laravel /
Установите для корневого каталога документ для Apache в общую папку, а не в папку laravel. Это самый простой метод и рекомендуется для производственных сред.
Я тоже борюсь с этой проблемой, но я нашел простое решение, которое требует только создать другой .htaccess в корне вашего приложения.
Сам .htaccess должен содержать следующее:
RewriteEngine On RewriteCond %{HTTP_HOST} ^{yoursite}.{extension} [NC] RewriteRule (.*) http://www.{yoursite}.{extension}/$1 [R=301,L] RewriteCond %{REQUEST_URI} !public/ RewriteRule (.*) /public/$1 [L]
Полная система продолжает работать, но перенаправляется в / общую папку.
Вот как я решил проблему для себя.
Надеюсь, поможет!
Приветствия.
Добавьте следующий код в файл htaccess. Это может помочь вам.
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*)$ public/$1 [L] </IfModule>
Добавьте следующий код в свой .htaccess (если не существует, создайте .htaccess в корневом каталоге laravel)
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*)$ public/$1 [L] </IfModule>
Источник: http://tutsnare.com/remove-public-from-url-laravel/
в Source вы также получите другой способ сделать то же самое.
Обновление: предпочтительный способ сделать это – внести изменения в структуру каталогов, которые объясняются в исходном URL-адресе.
Я использую L5, это работает для меня хорошо:
-Это это !!!
просто в простой шаг, который я сделал в laravel 5, сделайте .htaccess, как это, в папке laravel
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews </IfModule> RewriteEngine On # Redirect Trailing Slashes... RewriteRule ^(.*)/$ /$1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ ./index.php [L] </IfModule>
затем переименуйте файл server.php
в index.php
что он будет работать
или если вы просто занимаетесь местной разработкой
запустить этот comman php artisan serve
он запустит локальный сервер на localhost:8000
(порт может меняться)
Вы можете использовать символические ссылки или отредактировать файл httpd.conf
.
Проверьте мой ответ на другой подобный вопрос. Надеюсь, что это поможет.
Если вы не хотите испытывать стресс при настройке файла .htaccess , вы можете использовать встроенный сервер PHP, выполнив следующие действия:
laravel\public
php -S localhost:8000
После того, как вы сможете получить доступ к своему сайту, перейдите по ссылке:
http:://localhost:8000
работает без добавления public
Подробнее см. В официальном руководстве: http://php.net/manual/en/features.commandline.webserver.php
Перейдите в папку проекта с помощью cmd и введите «php artisan serve». Теперь перейдите к: localhost: 8000
Я нашел поток geart для работы с laravel localy.
Что вы можете сделать, так это немного настроить xampp. В файле httpd.conf вашего xamp вы должны найти документ DocumentRoot
и <Directory>
. Измените корневой каталог на свою общую папку laravel и перезапустите apache. Поскольку, когда вы можете легко получить доступ к своему проекту, просто введите localhost. Теперь, если вы хотите, вы можете изменить свой файл хоста и переписать локальные DNS, например: 127.0.0.1 example.laravel.com
и теперь вы можете получить доступ к своему проекту с помощью реального URL-адреса. Это может выглядеть немного сложно, но это не так.
Альтернативой этому может служить php artisan serve
. Вы можете запускать сервер на разных портах и при перезаписывании файлов хостов.
Вы можете добавить некоторые функции, чтобы еще больше улучшить рабочий процесс, например, vagrant
или ngrok
. Вы можете поделиться своим проектом с живой презентацией (скорость может быть проблемой здесь).
Необходимо удалить публичный сегмент в приложении larvel4
Laravel 4 требует, чтобы ваш код приложения был на один уровень выше, чем у веб-корня, и это вызывает проблемы для некоторых разработчиков, которые застряли на общем хостинге, и это не позволяет такую настройку. На самом деле очень легко обойти это. Я читал, что некоторые специфические пакеты L4 могут иметь проблемы с настройкой, подобной этой, но я не испытывал ничего подобного в любом пакете.
Поэтому сначала установите L4 где угодно. Мне понравилась статья Niall о том, как поддерживать базовое приложение L4 в актуальном состоянии, поэтому идите и проверьте это: Установка и обновление Laravel 4
Я считаю, что для этого примера достаточно просто клонировать репо (если у вас есть композитор, установленный глобально, если нет, перейдите на страницу http://getcomposer.org/ ):
git clone -b develop git://github.com/laravel/laravel.git app_name
Установка php-композитора
Обратите внимание, что мы клонируем ветку разработки, так как L4 все еще находится в стадии бета-тестирования.
Поэтому, чтобы удалить «общедоступную» часть из вашего URL-адреса, просто переместите все файлы и папки из общедоступного в свой корневой каталог приложения, и вы получите такую структуру папок, как это:
/app /bootstrap /packages (copied from /public) /vendor .htaccess (copied from /public) artisan composer.json favicon.ico (copied from /public) index.php (copied from /public) robots.txt (copied from /public) server.php
Теперь нам нужно отредактировать наши пути в index.php:
require __DIR__.'/bootstrap/autoload.php'; $app = require_once __DIR__.'/bootstrap/start.php';
А затем просто установите публичный каталог в файл /bootstrap/paths.php:
'public' => __DIR__.'/..',
это мое предложение
Вам нужно сделать следующее:
сначала скопируйте все содержимое общедоступного каталога в свой корневой каталог, то есть доведите содержимое общей папки 1 вверх.
изменить содержимое index.php
From =>
require __DIR__ . "/../bootstrap/autoload"; $app = require_once __DIR__ . "/../boostrap/start.php"
To =>
"require __DIR__.'/bootstrap/autoload.php';" "$app = require_once __DIR__.'/bootstrap/start.php';
а также содержимое bootstrap / paths.php
From => 'public' => __DIR__.'/../../',
To => 'public' => __DIR__.'/..',
3. Затем, наконец, создайте файл .htaccess в корневом каталоге и напишите это.
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews </IfModule> RewriteEngine On RewriteRule ^(.*)/$ /$1 [L,R=301] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>
Простые шаги:
server.php
(в корневой каталог) в index.php
.htaccess
из общего каталога в корневой каталог переименуйте server.php
в index.php
и скопируйте index.php
.htaccess
из /public
. Если вы отправляете свое приложение онлайн, просто измените DocumentRoot на общедоступный.
если вы удаляете публикацию с url, сначала перенесите файлы index.php и .htaccess из общей папки в корень laravel и измените файл index.php
требуется DIR. '/ .. / bootstrap / autoload.php'; $ app = require_once DIR. '/ .. / bootstrap / start.php';
в
требуется DIR. '/ bootstrap / autoload.php'; $ app = require_once DIR. '/ bootstrap / start.php';
и запустить программу