【问题标题】:Trying to include the contents of htaccess in httpd.conf试图在 httpd.conf 中包含 htaccess 的内容
【发布时间】:2017-03-18 21:30:42
【问题描述】:

我正在尝试在 httpd.conf 中包含 .htaccess 以获得更好的性能。

我正在按照自述文件here 中的说明来提高网站性能。我把 .htaccess 放在我的网站根文件夹 C:/xampp/htdocs/apps 然后在 httpd.conf 里面我有下面的代码。然后我重新启动了apache。问题是我认为没有应用 .htaccess 规则

这是包含 .htaccess 的正确方法吗?我是否将它包含在正确的目录中?

<Directory "C:/xampp/htdocs">

    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted

    Include C:\xampp\htdocs\apps\.htaccess

</Directory>

【问题讨论】:

  • .htaccess 和 httpd.conf 语法并不完全相同,因此请确保您的包含使用正确的 httpd.conf 语法,您可能应该将“规则”放入相关的 httpd.conf 的部分而不是包含。见stackoverflow.com/questions/17140605/…

标签: php apache xampp httpd.conf


【解决方案1】:

如果您想使用 Include 指令在目录上下文中手动“包含”内容,请将 AllowOverride 设置为 none,否则您将应用相同的配置两次,一次在目录中,另一次通过 AllowOverride 方法。

如果您只想拥有一个 .htaccess 文件(不知道为什么,因为您似乎可以访问主配置),那么 AllowOverride all 就足够了。

如果您只想 .htaccess 并确保它正在被应用,您可以:

<Directory "C:/xampp/htdocs">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
</Directory>

并在此目录内的 .htaccess 文件中添加垃圾文本,如果正在读取,Apache 将响应 500 错误,如果不是,您可能正在登陆另一个未设置此目录的虚拟主机。

【讨论】:

    【解决方案2】:
    AllowOverride All
    

    应该已经告诉 apache 让 .htaccess 覆盖所有设置。我认为没有必要手动包含它。

    【讨论】:

    • 实际上,只是我们中很少有人能够访问 httpd.conf,因此通过 .htaccess 进行所有操作是如此普遍。是的,有时需要将指令从 .htaccess 移到 httpd.conf 中,因为它会提高性能。必须为每个请求读取和处理 .htaccess,而大部分 httpd.conf 已经加载到服务器 RAM 中
    • 很公平。但是 AllowOverride All 也不应该在那里。
    猜你喜欢
    • 2012-05-05
    • 2010-12-15
    • 1970-01-01
    • 2011-06-26
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    相关资源
    最近更新 更多