迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 网络 >

Apache 的 AllowOverride All 并不像你想象的那样

作者:迹忆客 最近更新:2023/01/06 浏览次数:

我只需要为一个学校项目设置一个 Apache 服务器。 因为我喜欢使用 .htaccess 文件来设置重写规则并摆弄一些其他选项,所以除了标准批处理之外还必须加载一些额外的模块。

使用 phpinfo() 可以轻松检查当前加载了哪些模块,如这篇关于在 Apache 中启用 mod_rewrite 的文章中所述。

激活 Apache 模块很简单:只需打开 Apache 安装 /conf/ 文件夹中的 httpd.conf 文件,然后取消注释(或添加)相应的行。 注释行始终以井号 (#) 开头。

基本上,要加载 mod_negotiation(用于多视图)和 mod_rewrite(用于重写规则),我们只需将以下行添加到 httpd.conf

LoadModule negotiation_module modules/mod_negotiation.so
LoadModule rewrite_module modules/mod_rewrite.so

到目前为止,一切都很好。 Apache 被指示加载额外的模块; 我们现在应该能够使用 MultiViews 并通过在 .htaccess 文件中定义它们来重写规则。

然而,当我尝试使用 Options +MultiViews 时,我得到的只是那些臭名昭著的“500 Internal Server Error”页面之一。

错误日志在 .htaccess: Option MultiViews not allowed here 的行中说了一些东西。

在这种情况下,谷歌并没有真正提供帮助。 起初,我只能找到有同样问题的人。 在我真正开始浏览旧的 #apache IRC 日志之前,我找不到任何解决方案。

事实证明,Apache 在 httpd.conf 中有一个默认设置,它指定了可以被写入 .htaccess 文件的内容覆盖的设置:AllowOverride。 我们的 httpd.conf 可能包含如下内容:

<Directory />
  Options FollowSymLinks
  AllowOverride All
  Order deny,allow
  Deny from all
</Directory>

与我们的想法相反,All 参数并不真正意味着“**[允许覆盖]所有选项** ”,因为它不包括 MultiViews 选项! 这里的关键是使用AllowOverride Options=All,MultiViews。 与所有其他指令分组一起,这是我们需要的代码:

<Directory />
  Options FollowSymLinks
  AllowOverride AuthConfig FileInfo Indexes Limit Options=All,MultiViews
  Order deny,allow
  Deny from all
</Directory>

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Apache2 中启用 PHP

发布时间:2023/03/27 浏览次数:149 分类:PHP

本文将教你如何使用 a2enmod、LoadModule 和符号链接在 Apache2 中启用 PHP。如果你遇到有关 PHP 的模块错误,我们将教你如何通过 apt-get 修复它。

从URL中移除 www.

发布时间:2023/01/06 浏览次数:155 分类:学无止境

如果你讨厌网站 URL 中的 www. 部分(就像我大约两个月前开始做的那样),你应该让其他人包括搜索引擎知道这一点。 这只是将通过 www. 访问的每个页面重定向到与其相等的 非www 的

php zookeeper常见问题解决方案

发布时间:2017/03/13 浏览次数:911 分类:PHP

本章承接上一章提出的php-zookeeper的问题以及原因来继续提出解决方案,一是修改php-zookeeper源码,再就是修改php代码。

php zookeeper你需要知道的细节

发布时间:2017/03/12 浏览次数:3599 分类:PHP

本章介绍如何在php中集成zookeeper,使用PHP-Zookeeper扩展插件。同时通过分析PHP-Zookeeper源码来了解其存在的一些问题,各位在使用过程中尽量避免相似问题。

Windows7下Apache2.4+PHP5.6环境配置

发布时间:2016/10/25 浏览次数:972 分类:操作系统

Apache2.4+PHP5.6的配置和其他版本的配置步骤是相同的。但是这里有一点需要注意的地方就是依赖组件版本的兼容。本篇主要就是对这个问题进行一个介绍说明。

Windows7下Apache2.4安装及注意事项

发布时间:2016/10/24 浏览次数:2446 分类:操作系统

windows7下面安装apache2.4,其过程和其他版本的apache不同。本篇就2.4版本在windows7下面编译安装以及注意事项做一个介绍。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便