【问题标题】:Location and Directory cause 500 error位置和目录导致 500 错误
【发布时间】:2014-02-06 00:23:14
【问题描述】:

我有一个 .htacces 文件,我正在尝试打开对受保护文件夹中文件和文件夹的访问权限。

该文件是 index.php,所以我执行以下操作:

<Files index.php>
    Order Allow,Deny
    Allow from All
    Satisfy Any
</Files>

这可行,让我可以访问此文件。此文件需要来自 assets/ 目录的资产。所以我尝试通过执行以下操作打开该目录:

<Directory "/assets">
    Order Allow,Deny
    Allow from All
    Satisfy Any
</Directory>

但这给了我一个 500 错误。不知道为什么。

【问题讨论】:

  • 我打赌 /assets 不存在,因为 /assets 并不真正在服务器的 hte 根目录中,而是在您的文档根目录中或 .htaccess 文件所在的目录中。无论哪个是真的,要么使用完整的绝对路径,要么使用相对路径。
  • 所以假设我将其更改为“./assets”,那么这意味着如果 assets 与 .htacces 位于同一目录级别,那么 apache 将能够解析到该目录好吗?
  • ./assets 或简单的 assets 应该可以,是的。要升级,请一如既往地使用..
  • 如果不行,使用绝对路径。我不确定 Directoy 容器是否可以在实际路径上工作,我现在也无法测试。文档对此并不十分清楚。
  • 我也看不出它不能在 atm 工作的理由。但作为替代方案,您是否尝试将.htaccess 文件放入资产目录中,并放置任何容器?这也应该有效......

标签: apache .htaccess directory


【解决方案1】:

您不能在 htaccess 文件中使用 &lt;Directory&gt; 容器(本质上类似于 &lt;Directory&gt; 容器本身)。如果您想允许访问资产,则只需创建一个 htaccess 文件 inassets:

Order Allow,Deny
Allow from All

【讨论】:

  • 好吧,我有预感就是这种情况。无论如何,我最终完全按照您所说的去做,这解决了我的问题。在旁注中,您不能在 htaccess 文件中使用 对吗?
  • @moesef No, you can't。您可以使用位置的上下文仅在服务器或虚拟主机配置中。
猜你喜欢
  • 2013-10-30
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-14
  • 2018-06-06
  • 2016-02-22
  • 1970-01-01
相关资源
最近更新 更多