[英]404 error on all routes except default "/" using AWS hosting on a Laravel app (routes work in local environment)
[英]Laravel all routes except '/' return 404
正如标题所示,除了主页('/')之外,我的laravel应用程序中的所有路由都会导致404错误。
我已将公共文件夹与laravel应用程序的其余部分分开,如下面的文件夹结构所示。 编辑:我已经确认这不是造成问题的原因。
在开发系统(本地)和生产系统(共享主机)上都会发生此错误。
编辑:我忘了提到:如果我去localhost / index.php / route_name,路由工作
文件夹结构:(为方便起见,文件夹名称更改为public / laravel /)
.
+-- public/
| +-- index.php
| +-- packages/
| +-- etc...
+-- laravel/
| +-- app/
| +-- artisan
| +-- etc...
routes.php文件:
<?php
Route::get('/', function() // Only this route works
{
return 'hello world';
});
Route::get('oversikt', function() // This route does not work
{
return 'goodbye world';
});
引导/ paths.php:
<?php
return array(
'app' => __DIR__.'/../app',
'public' => __DIR__.'/../../pc',
'base' => __DIR__.'/..',
'storage' => __DIR__.'/../app/storage',
);
index.php文件:
<?php
require __DIR__.'/../pc_backend/bootstrap/autoload.php';
$app = require_once __DIR__.'/../pc_backend/bootstrap/start.php';
$app->run();
.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>
stackoverflow上存在一个几乎相同的问题 ,但它没有提供答案。
我该如何解决这个问题?
在apache2.conf中将AllowOverride设置为all并使用命令a2enmod rewrite
启用mod_rewrite后,一切正常。
我知道这是一个老问题,但想在这里发布我的解决方案。 它可能会帮助别人。
它主要是apache虚拟主机的问题。 在DocumentRoot之后,请确保vhost配置文件中有以下脚本。
<Directory "/var/www/path/to/my/app/public">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
另一个原因可能是启用apache重写mod。 您可以使用以下命令执行此操作。
sudo a2enmod rewrite
sudo service apache2 restart
放
的index.php
和
.httaccess
在同一目录中。
这对我有用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.