拉拉维尔 4 虚拟主机和模组重写设置


Laravel 4 Virtual Host and mod rewrite setup

我一直在尝试安装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 时,我收到内部服务器错误 - 服务器遇到内部错误或配置错误,无法完成您的请求。

如果我从公用文件夹中删除.htaccess文件,那么我会看到Laravel"您已到达"消息。如果然后,我创建这样的路由(在应用程序''路由.php中):

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

然后转到 http://laravel.dev/newroute 我最终会得到 404 未找到 - 在此服务器上找不到请求的 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)。

尝试通过将

虚拟主机更改为:

<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