laravel virtualhost 404错误

时间:2014-10-05 14:19:25

标签: .htaccess laravel apache2

我的ubuntu服务器上有apache2。

有我的/etc/apache2/sites-available/laravel.conf

<VirtualHost *:80>
    ServerName http://laravel.mysite.com/
    DocumentRoot "/var/www/laravel/public"
    <Directory "/var/www/laravel/public">
        AllowOverride all
        Order allow,deny
       Allow from all
    </Directory>
</VirtualHost>

我打开了apache的mod_rewrite函数。

有我的/var/www/laravel/app/routes.php

<?php
Route::get('/', function()
{
    return View::make('home/index');
});
Route::get('/hehe', function()
{
    return "hehe';
});

有我的/var/www/laravel/public/.htaccess

<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>

现在,我可以访问http://laravel.mysite.com,但是当我访问http://laravel.mysite.com/hehe时,会出现404错误。有什么我配错了吗?

2 个答案:

答案 0 :(得分:0)

我唯一要做的就是设计apache2.conf,添加:

<Directory /var/www/laravel/public>
    Options FollowSymLinks
    AllowOverride All
</Directory>

答案 1 :(得分:0)

尽管问题很老,但对于仍然有兴趣的人(就像我一样,但是设法解决了问题),我创建了一个清单,以检查Laravel路线是否抛出404或403错误。

我认为Laravel最初安装的public/.htaccess文件未修改。

  1. 确保使用正确的路径将部分插入虚拟主机的apache配置文件中。

  2. 确保部分中没有AllowOverride All,而不是None允许路由(避免404错误)。

  3. 请确保在部分中没有Require all granted,而没有denied来授予访问者访问该网站的权限(避免403错误)。

  4. 如果您在应用中使用符号链接,则可能还需要在部分中包含Options FollowSymLinks

  5. 确保已在apache中启用rewrite模块:$ sudo a2enmod rewrite

  6. 不要忘记重新启动apache服务器,以使更改生效。