Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache “拉雷维尔”;子文件夹";或者超出根目录的页面会产生404错误_Apache_Laravel - Fatal编程技术网

Apache “拉雷维尔”;子文件夹";或者超出根目录的页面会产生404错误

Apache “拉雷维尔”;子文件夹";或者超出根目录的页面会产生404错误,apache,laravel,Apache,Laravel,我希望能够从Laravel环境中生成“子文件夹”页面。所谓“子文件夹”,我指的是本地URL localhost/子页面中的子页面 我使用的是Ubuntu 15.04、Apache 2.4.10和Laravel 5.1 文档根页面(在我的虚拟主机站点laravel.dev上)工作,并在路径“/”处生成预期的laravel页面。对超出文档根(laravel.dev/test)的路径的任何调用都会产生404错误 在路径(laravel.dev/index.php/test)中包含“index.php/

我希望能够从Laravel环境中生成“子文件夹”页面。所谓“子文件夹”,我指的是本地URL localhost/子页面中的子页面

我使用的是Ubuntu 15.04、Apache 2.4.10和Laravel 5.1

文档根页面(在我的虚拟主机站点laravel.dev上)工作,并在路径“/”处生成预期的laravel页面。对超出文档根(laravel.dev/test)的路径的任何调用都会产生404错误

在路径(laravel.dev/index.php/test)中包含“index.php/”将生成预期的laravel页面。下面提到的stackoverflow问题表明,该问题因此可能与etc/apache2/apache2.conf指令或.htaccess指令有关

etc/apache2/apache2.conf的相关部分是

<Directory /home/me/Laravel/public/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

选项索引跟随符号链接
允许超越所有
要求所有授权
我将allowOverride从None更改为All,希望这样可以执行主Laravel.htaccess文件,并且实际上可以将index.php文件合并到路径中

为启用虚拟主机而创建的虚拟主机文件的相关部分是

<Directory "/home/me/Laravel/public/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
   Require all granted
</Directory>

选项索引跟随符号链接多视图
允许超越所有
要求所有授权
主Laravel.htaccess文件是

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

选项-多视图
重新启动发动机
#如果不是文件夹,则重定向尾部斜杠。。。
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)/$/$1[L,R=301]
#处理前控制器。。。
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^index.php[L]
此.htaccess文件在Laravel安装中未被触及

正如在对这个stackoverflow问题的回答中所建议的,my.htaccess文件中的RewriteRule没有前面的正斜杠


请显示您的
routes.php
文件//works Route::get('/','WelcomeController@index'); // 404错误路由::获取('test','Auth\AuthController@test'); // 404错误路由::get('foo/bar',函数(){return'Hello World';});解决这个问题如stackoverflow问题中所述,需要在apache sudo a2enmod rewrite中启用mod rewrite,然后apache停止并重新启动