9

我已经尝试了几个小时来安装 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

此外,以下行在 inwamp/../conf/httpd.conf和 in 中均未注释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“你已经到达”消息。如果那时,我创建一个这样的路由(在app\routes.php内):

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

然后转到http://laravel.dev/newroute我将得到一个404 Not Found - 在此服务器上找不到请求的 URL /newroute。

我很困惑,不知道如何才能克服这一点。我提到(尽管我认为很清楚)我composer install在克隆项目模板、安装依赖项后运行了一个。

4

3 回答 3

9

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

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

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

(对于 WAMP)。

于 2013-11-06T02:13:06.633 回答
5

尝试通过将 VirtualHost 更改为以下方式打开目录上的 AllowOverride All:

<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>
于 2013-11-06T01:33:13.923 回答
0

我经历了同样的问题并遵循了上面给出的所有处理方法,但无法设置虚拟主机。

当我检查文件时http.conf,我发现包含文件httpd-vhosts.conf的注释如下所示。确保包含httpd-vhosts.conf在 httpd.conf 中。

#Include conf/extra/httpd-vhosts.conf

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

Include conf/extra/httpd-vhosts.conf

于 2015-07-07T10:35:38.313 回答