【问题标题】:Cant see or access Laravel's public folder无法查看或访问 Laravel 公用文件夹
【发布时间】:2014-07-08 18:32:35
【问题描述】:

在 Fedora 20 上,我创建了一个名为 test 的文件夹,然后通过 composer create-project laravel/laravel 将 Laravel 安装到其中。它运行成功,现在我尝试通过以下 URL 在 FireFox 中查看它:

http://localhost/~username/test/laravel/public/

但它会抛出以下错误:

内部服务器错误

服务器遇到内部错误或配置错误,无法完成您的请求。

请通过 root@localhost 联系服务器管理员,告知他们此错误发生的时间,以及您在此错误之前执行的操作。

服务器错误日志中可能会提供有关此错误的更多信息。

如果我转到父文件夹,我可以看到除了 public 文件夹之外的所有内容都在那里。但是,如果我在终端中ls,我可以看到该文件夹​​就在那里。仅此项目的其他 PHP 脚本没有问题。我尝试使用文件夹权限玩,但没有成功。为什么我在浏览器中看不到该文件夹​​,为什么我尝试访问它时会抛出错误 500?

【问题讨论】:

  • 不是localhost根目录下的laravel公用文件夹吗? IE。 localhost/file.txt 将返回 public/file.txt
  • 试试我的解决方案它会在任何地方工作。检查链接stackoverflow.com/questions/25222509/…

标签: php laravel fedora


【解决方案1】:

调试

看了/var/log/httpd/error_log后,我在最后一行看到了以下内容:

[2014 年 5 月 20 日星期二 09:37:21.874443] [core:alert] [pid 2897] [client ::1:55498]
/home/username/public_html/test/laravel/public/.htaccess:
此处不允许的选项,referer:http://localhost/~username/test/

让事情顺利进行

所以在我的public 文件夹中,我将.htaccess 文件重命名为.htaccess2,现在它可以工作了。当然,现在我需要在 URL 中的 public/ 之后写 index.php,但至少它可以工作。这也解决了不可见文件夹错误,所以如果我在浏览器中转到项目根目录(public 的父文件夹),它也会列出public 文件夹。

尝试修复它

httpd.conf 文件中的According to this answer 配置可以被其他额外文件覆盖。您应该在这些文件中搜索包含AllowOverride 的行,例如AllowOverride AuthConfig FileInfo,并将其替换为AllowOverride All。

【讨论】:

  • 今天早上有这个问题,发现在public/.htaccess 文件中注释掉RewriteEngine On 使它起作用。将此行添加到 htaccess 使其正常工作Options +FollowSymLinks
猜你喜欢
  • 2021-03-21
  • 2017-06-18
  • 1970-01-01
  • 2020-11-06
  • 2013-06-03
  • 2021-05-30
  • 2017-03-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多