Apache 的 AllowOverride All 并不像你想象的那样
我只需要为一个学校项目设置一个 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>
相关文章
在 Apache2 中启用 PHP
发布时间:2023/03/27 浏览次数:149 分类:PHP
-
本文将教你如何使用 a2enmod、LoadModule 和符号链接在 Apache2 中启用 PHP。如果你遇到有关 PHP 的模块错误,我们将教你如何通过 apt-get 修复它。
在 Ubuntu 和 Debian 上配置 Apache Web 服务器
发布时间:2023/03/17 浏览次数:143 分类:操作系统
-
本教程展示了在 Ubuntu 和 Debian 上安装和设置 apache 网络服务器以及使用访问日志。
在同一台服务器上运行 Node Js 和 Apache
发布时间:2023/03/12 浏览次数:200 分类:Node.js
-
本教程演示了如何在同一台服务器上运行 Node JS 和 Apache。
从URL中移除 www.
发布时间:2023/01/06 浏览次数:155 分类:学无止境
-
如果你讨厌网站 URL 中的 www. 部分(就像我大约两个月前开始做的那样),你应该让其他人包括搜索引擎知道这一点。 这只是将通过 www. 访问的每个页面重定向到与其相等的 非www 的
如何在 Ubuntu 18.04 VPS 或专用服务器上启用 Apache Mod_Rewrite
发布时间:2023/01/06 浏览次数:156 分类:学无止境
-
Mod_rewrite 是一个强大的 Apache 模块,提供 URL 操作能力。 复杂的功能允许网站管理员重写 URL,这是许多内容管理系统编码(如 WordPress)中的常见做法。 Mod_rewrite 以翻译动态网站中人类
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下面编译安装以及注意事项做一个介绍。