laravel“子文件夹”或超出root的页面会产生404错误

时间:2015-10-23 01:28:50

标签: apache laravel

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

我正在使用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指令有关。

404 error laravel 4 routing

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>

这个.htaccess文件不受Laravel安装的影响。

正如对此stackoverflow问题的回答所建议的那样,我的.htaccess文件中的RewriteRule没有前面的正斜杠。

Laravel 5 returns 404 error for every page

0 个答案:

没有答案