我的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错误。有什么我配错了吗?
答案 0 :(得分:0)
我唯一要做的就是设计apache2.conf,添加:
<Directory /var/www/laravel/public>
Options FollowSymLinks
AllowOverride All
</Directory>
答案 1 :(得分:0)
尽管问题很老,但对于仍然有兴趣的人(就像我一样,但是设法解决了问题),我创建了一个清单,以检查Laravel路线是否抛出404或403错误。
我认为Laravel最初安装的public/.htaccess
文件未修改。
确保使用正确的路径将
确保AllowOverride All
,而不是None
允许路由(避免404错误)。
请确保在Require all granted
,而没有denied
来授予访问者访问该网站的权限(避免403错误)。
如果您在应用中使用符号链接,则可能还需要在Options FollowSymLinks
。
确保已在apache中启用rewrite
模块:$ sudo a2enmod rewrite
不要忘记重新启动apache服务器,以使更改生效。