![Windows 上的 Apache 无法读取 .htaccess 文件](https://linux22.com/image/492141/Windows%20%E4%B8%8A%E7%9A%84%20Apache%20%E6%97%A0%E6%B3%95%E8%AF%BB%E5%8F%96%20.htaccess%20%E6%96%87%E4%BB%B6.png)
我在 Windows 上安装了 Apache。在我的 httpd.conf 文件中,我将 AllowOverrides 设置为 All。我在 DocumentRoot 目录中放置了一个 .htaccess 文件,但该文件未被读取。我知道该文件未被读取,因为如果我将内容直接添加到我的 httpd.conf 文件中,该文件就会被读取。我还遗漏了什么?
答案1
检查你的 httpd.conf 以确保访问文件名指令设置为.htaccess
答案2
您忽略的一件事是,将这些规则放入 httpd.conf 中比放入 .htaccess 中要好得多。服务器必须在当前目录以及每个父目录中搜索、打开和读取 .htaccess 文件直到 DocRoot,这是额外的工作。额外的工作量很小,但每次请求时都会增加。
最好的经验法则是,仅当您没有 httpd.conf 的写权限时才使用 .htaccess。否则完全禁用 htaccess 并将所有配置放入 httpd.conf。
答案3
什么版本的 Windows?
至少在 Windows XP 上,.htaccess
不是一个有效的文件名,因为它以“。”开头。
答案4
确保您尝试放入 .htaccess 文件中的指令在 .htaccess 中有效语境。前往Apache 2.2 指令快速参考页面并验证您要放入 .htaccess 中的每个指令在该上下文中是否有效。我怀疑您试图使用在 .htaccess 中无效的指令,这就是为什么当您将其放入 httpd.conf 时它会起作用的原因。