localhost 未读取 htaccess,httpd AllowOverride All 导致错误

Posted

技术标签:

【中文标题】localhost 未读取 htaccess,httpd AllowOverride All 导致错误【英文标题】:localhost not reading htaccess, httpd AllowOverride All causes error 【发布时间】:2012-08-02 10:58:18 【问题描述】:

我是新手,尝试使用 Apache 2.2.22 和 php 5.3.15 将我的在线站点复制到本地服务器上。但是,我的本地主机没有读取 .htaccess 文件。我修改了示例 httpd.conf 文件,它正确地注册了以 localhost/index.php 开头的站点。但是,如果我转到 localhost/index,我会收到“未找到”错误。 .htaccess 文件可以通过我的 ISP 正常工作(即 mysite.com/index 可以正常工作)。

起初我以为是我的 .htaccess 重写有问题 ErrorDocument 404 /404.phpRewriteEngine onRewriteRule ^([a-zA-Z0-9]+)(/[a-zA-Z0-9/]+)?$ /$1\.php$2 [L]

但是我的 localhost 也没有读取 404 错误,这让我认为它是 httpd.conf 文件。经过一些研究,当 AllowOverride 未切换到“全部”时,会发生类似的问题。这是我所拥有的。

<Directory "D:/mywebfile/webserver/website/public_html">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

当我将它切换到 AllOverride All 时,我得到一个“内部服务器错误”,并出现以下日志错误

httpd.exe:无法可靠地确定服务器的完全限定域名,使用 10.0.99.35 作为 ServerName [2012 年 8 月 4 日星期六 15:15:55] [通知] 子 9152:子进程正在运行 [2012 年 8 月 4 日星期六 15:15:55] [通知] 孩子 9152:获得了启动互斥锁。 [Sat Aug 04 15:15:55 2012] [notice] Child 9152:启动 64 个工作线程。 [2012 年 8 月 4 日星期六 15:15:55] [通知] Child 4764:发布了启动互斥锁 [Sat Aug 04 15:15:56 2012] [notice] Child 4764:所有工作线程都已退出。 [Sat Aug 04 15:15:56 2012] [notice] Child 4764:子进程正在退出 [2012 年 8 月 4 日星期六 15:15:56] [通知] 子 9152:启动线程以侦听端口 80。 [2012 年 8 月 4 日星期六 15:15:58] [警报] [客户端 127.0.0.1] D:/mywebfile/mywebserver/website/public_html/.htaccess: >无效命令“RewriteEngine”,可能拼写错误或由未包含的模块定义在服务器配置中

我也试过取消注释

#LoadModule rewrite_module modules/mod_rewrite.so

在 httpd 文件中,但我仍然得到相同的“内部服务器错误”

这似乎是一个简单的问题,但我已经用尽了所有简单的解决方案。任何帮助将不胜感激(并节省我没有拔掉的那一点头发)。

谢谢!

【问题讨论】:

【参考方案1】:

问题在于RewriteEngine 命令,而不是AllowOverride。这只是激活重写命令。

激活 mod_rewrite 是要走的路,你展示的方式。确保您正在编辑正确的 httpd.conf 文件并在重试之前重新启动服务器。

【讨论】:

你让我走上了正轨。我认为它与启用 rewrite_mod 后的 AllowOverride 有关,但它仍然无法正常工作,但我的 .htaccess 有一些其他命令(标头和过期)在 httpd.conf 中未启用。我所要做的就是激活它们,然后做一个拳头泵。真是太感谢你了!!

以上是关于localhost 未读取 htaccess,httpd AllowOverride All 导致错误的主要内容,如果未能解决你的问题,请参考以下文章

.htaccess 文件未被读取

htaccess 用于 apache 未读取的干净 url?

Web 服务器未读取 .htaccess 文件

服务器无法读取 htaccess 文件,拒绝访问是安全的

htaccess mod_rewrite - 覆盖多个参数并读取未覆盖的参数

未捕获的类型错误:无法读取 null 的属性“signIn”(在 localhost 上运行代码时!)