Apache错误:没有匹配的DirectoryIndex

时间:2016-05-03 18:58:40

标签: php apache laravel

这是我第一次尝试在共享主机帐户上部署 Laravel 应用程序。

文件夹结构如下:

|--laravel
  |--app
     |--GoPublic.php // use to point to new location 
  |--bootstrap
  |--config
  |--database
  // more folders 
|--public_html
  |--app // my subdomain document root
     |--assets
     |--index.php // GoPublic.php point to this file

当我转到我的子域名网址时,我得到了这个:

enter image description here 我检查了我的error.log文件,得到以下403禁止错误:

[autoindex:error] [pid 910782] [] AH01276: Cannot serve directory /home/user/public_html/app/: No matching DirectoryIndex (index.php,Index.html,Index.htm,index.html.var,index.htm,index.html,index.shtml,index.xhtml,index.wml,index.perl,index.pl,index.plx,index.ppl,index.cgi,index.jsp,index.js,index.jp,index.php4,index.php3,index.phtml,default.htm,default.html,home.htm,index.php5,Default.html,Default.htm,home.html) found, and server-generated directory index forbidden by Options directive

希望有人能帮助我。谢谢!

2 个答案:

答案 0 :(得分:0)

您可以尝试在.htaccess目录和laraval目录中添加laravel/public

<IfModule mod_rewrite.c>
WriteEngine On
RewriteBase /laravel/public/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

也许您还需要将Laravel指向公共目录才能使其正常工作。例如,如果您在/path_to_laravel/public/目录中安装了Laravel,则需要在Apache配置中使用这些设置:

DocumentRoot "/path_to_laravel/public/"
<Directory "/path_to_laravel/public/">

之后重新启动Apache,您的应用程序应该按预期工作。

答案 1 :(得分:0)

也许答案来晚了,但是, 确保您对public/index.php文件具有正确的权限。 例如,如果您的用户是核心,则您也应该将其设置为index.php的所有者。

要更改它,可以使用以下命令:

sudo chown -R core public/index.php