【问题标题】:Laravel 4 - Options not allowed here in the .htaccessLaravel 4 - .htaccess 中不允许的选项
【发布时间】:2013-08-26 08:43:41
【问题描述】:

我已经在本地的public_html 文件夹上安装了Laravel 4,当声明指向它的vhost 时,我可以通过vhost url 访问它的public 文件夹。

但是,当我尝试通过其父文件夹访问 Laravel 公用文件夹时,我在 apache 日志 (error_log) 中收到错误:$LARAVEL_HOME/public/.htaccess: Options not allowed here。即使$VHOST_CONF/site 中有AllowOverride All

.htaccess (Options Multiviews) 中的第一行,当我删除它或将其放入$VHOST_CONF/site 时导致此错误,它可以工作。

那么,如何在不修改.htaccess 文件的情况下通过层次结构访问?

【问题讨论】:

  • 你永远不应该“公开”访问 Laravel 根文件夹。您应该每次“公开”访问的唯一文件夹是 public
  • 我知道,但这是导致此错误的原因吗?
  • 最简单的事情(也可能是最安全的)是将 Laravel 4 安装在您的 public_html 下,删除您的 public_html 文件夹并创建一个符号链接 ln -s public public_html
  • FollowSymLink 必须在 Apache 中激活 Httpd?

标签: apache laravel laravel-4 public-html


【解决方案1】:

在网站的 Apache 配置文件中,将 AllowOverride 设置为 AllowOverride All 类似于以下内容:

<Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        # changed from None to All
        AllowOverride All
        Order allow,deny
        allow from all
</Directory>

【讨论】:

  • 我认为最好的使用方法(正如@evolve 所建议的那样)是仅将 /public 文件夹放在 www (public_html) 文件夹中。
  • 这为我解决了这个问题,但只有当我意识到需要编辑的是sites-available/default(Ubuntu 13 中的000-default.conf),而不是主要的apache2.conf
  • Apache 2.4.41 抱怨订单。
猜你喜欢
  • 2011-10-29
  • 1970-01-01
  • 1970-01-01
  • 2018-04-19
  • 2016-05-02
  • 2016-12-05
  • 1970-01-01
  • 2014-12-13
  • 2016-05-17
相关资源
最近更新 更多