我在Windows上安装了Apache。 在我的httpd.conf文件中,我将AllowOverrides设置为All。 我在我的DocumentRoot目录中放置了一个.htaccess文件,但没有被读取。 我知道它没有被读取,因为如果我直接将内容添加到我的httpd.conf文件,他们正在读取。 我还有什么遗漏?
检查你的httpd.conf,确保AccessFileName指令设置为.htaccess
有一件事你不知道,把这样的规则放进httpd.conf而不是放在.htaccess里好多了。 在服务器上search,打开和读取当前目录中的.htaccess文件以及在每个父目录中返回到DocRoot是额外的工作。 less量的额外工作,但是当它发生在每个请求上时,它会加起来。
最好的经验法则是只有在您没有对httpd.conf的写入权限时才使用.htaccess。 否则完全禁用htaccess并将所有configuration放入httpd.conf中。
什么版本的Windows?
至less在Windows XP上, .htaccess不是有效的文件名,因为它以'。'开头。
确保您试图放入.htaccess文件的指令在.htaccess 上下文中有效。 转到Apache 2.2指令快速参考页面,并validation您要在.htaccess中放置的每个指令在该上下文中是否有效。 我怀疑你正在尝试使用一个在.htaccess中无效的指令,这就是为什么当你把它放在httpd.conf中的时候。