本地主机不读取htaccess,httpd AllowOverride全部导致错误

问题描述:

我是新手,试图使用Apache 2.2.22和PHP 5.3.15将我的在线网站复制到本地服务器上。但是,我的本地主机没有读取.htaccess文件。我修改了示例httpd.conf文件,它从localhost/index.php开始正确注册该站点。但是,如果我得到本地主机/索引,我得到一个“未找到”的错误。 .htaccess文件通过我的ISP正常工作(即mysite.com/index工作正常)。本地主机不读取htaccess,httpd AllowOverride全部导致错误

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

但我的本地未读的404错误要么这使我认为它是httpd.conf文件。经过一番研究发现,当AllowOverride没有切换到“全部”时,会发生类似的问题。这是我所拥有的。

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

当我切换到AllOverride所有,我得到一个“内部服务器错误”与下面的日志错误

httpd.exe:无法可靠地确定了服务器的完全合格的域名,使用10.0.99.35 for ServerName [通知]孩子9152:孩子进程正在运行
[2012年8月4日15:15:55] [通知]孩子9152:获取启动互斥量。
[Sat Aug 04 15:15:55 2012] [notice] Child 9152:启动64个工作线程。
[notice Aug 04 04:15:55 2012] [notice] Child 4764:释放启动互斥量
[2012年8月4日星期六15:15:56] [notice] Child 4764:所有工作线程已退出。
[notice Aug 04 04 15:15:56 2012] [notice] Child 4764:Child process is exiting
[Sat Aug 04 15:15:56 2012] [notice] Child 9152:Starting thread to listen on port 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的文件

,但我仍然会得到相同的“内部服务器错误”

这似乎是一个简单的问题,但我已经用尽了我所有的简单的解决方案。任何帮助将不胜感激(并保存我没有拔出什么小毛发)。

谢谢!

问题出在RewriteEngine命令,而不是AllowOverride。那只是激活的重写命令。

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

+0

你让我走在正确的轨道上。我想在启用rewrite_mod之后它必须使用AllowOverride,但它仍然不起作用,但我的.htaccess还有一些其他命令(头文件和过期文件)在httpd.conf中未启用。我所要做的就是激活它们,然后做一个拳头泵。 我不能够感谢你! – davidavestyle 2012-08-04 23:43:38