Laravel 4虚拟主机和mod重写设置

我已经尝试了几个小时来安装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.confwamp/.../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我得到一个内部服务器错误 – 服务器遇到内部错误或configuration错误,无法完成您的请求。

如果我从公用文件夹中删除.htaccess文件,那么我会看到Laravel“你已经到达”的消息。 如果那么,我创build一个这样的路线(在应用程序\ routes.php内 ):

 Route::get('/newroute', function() { return View::make('hello'); }); 

然后去http://laravel.dev/newroute我将最终得到404 Not Found – 在这台服务器上找不到请求的URL / newroute。

我感到非常困惑,不知道我怎么能通过这个。 我提到(虽然我认为很清楚),我在克隆项目模板之后运行了composer install ,安装了依赖关系。

如果您发布的htaccess文件在您的/public/文件夹中,那么这就是为什么您会收到500内部服务器错误。 该htaccess文件是为/public/文件夹所在的文件夹制作 。 但是由于您的公用文件夹是文档根目录,所以您不需要它。

/public/文件夹中的htaccess文件应该如下所示:

 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.conf中包含httpd-vhosts.conf

#Include conf/extra/httpd-vhosts.conf

我删除了#评论。 重新启动了Wamp,它正在工作。

Include conf/extra/httpd-vhosts.conf