Я пытался установить несколько часов для установки Laravel 4 и сделать виртуальные хосты и маршрутизацию, но до сих пор мне не повезло. Я упоминаю, что я делаю это на машине Windows 7 и WAMP .
Я опишу, что я уже сделал:
Я включил rewrite_module.
Обновлен httpd-vhosts.conf со следующим:
<VirtualHost *:80> DocumentRoot "c:/wamp/www/laravel/public" ServerName laravel.dev ServerAlias www.laravel.dev </VirtualHost>
Затем я установил etc/hosts
:
127.0.0.1 localhost 127.0.0.1 laravel.dev
Кроме того, следующие строки раскомментированы как в wamp/../conf/httpd.conf
и в wamp/.../conf/original/httpd.conf
:
LoadModule vhost_alias_module modules/mod_vhost_alias.so Include conf/extra/httpd-vhosts.conf
Содержимое моего .htaccess
:
<IfModule mod_rewrite.c> Options -MultiViews RewriteEngine On RewriteRule ^(.*)$ public/$1 [L] </IfModule>
Тем не менее, когда я перехожу на http://laravel.dev, я получаю внутреннюю ошибку сервера. Сервер обнаружил внутреннюю ошибку или неправильную конфигурацию и не смог выполнить ваш запрос. ,
Если я удалю файл .htaccess
из общей папки, тогда я увижу сообщение Laravel «Вы пришли». Если тогда, я создаю такой маршрут (в приложении \ routes.php ):
Route::get('/newroute', function() { return View::make('hello'); });
а затем перейдите на страницу http://laravel.dev/newroute. В итоге у меня будет 404 Not Found. Запрошенный URL / newroute не найден на этом сервере.
Я серьезно запутался и понятия не имею, как я могу пройти мимо этого. Я упоминаю (хотя я думаю, что это понятно), что я запускал composer install
после клонирования шаблона проекта, установки зависимостей.
Если файл htaccess, который вы разместили, находится в вашей /public/
папке, вот почему вы получаете ошибку внутреннего внутреннего сервера. Этот файл htaccess был создан для папки, в которой находится папка /public/
. Но поскольку ваша общая папка является корнем документа, вам это не нужно.
Файл htaccess в папке /public/
должен выглядеть следующим образом:
Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]
(для WAMP).
Попробуйте включить AllowOverride All в каталоге, изменив VirtualHost на:
<VirtualHost *:80> DocumentRoot "c:/wamp/www/laravel/public" ServerName laravel.dev ServerAlias www.laravel.dev <Directory "c:/wamp/www/laravel/public"> AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
Я прошел одну и ту же проблему и выполнил все описанные выше процедуры, но виртуальный хост не может быть установлен.
Когда я проверил файл http.conf
я обнаружил, что включение файла httpd-vhosts.conf
было прокомментировано, как указано ниже. Обязательно httpd-vhosts.conf
в httpd.conf.
#Include conf/extra/httpd-vhosts.conf
Я удалил #
комментарий. Перезапустил войну и работал.
Include conf/extra/httpd-vhosts.conf