mod_rewrite 已安装但无法正常工作

Posted

技术标签:

【中文标题】mod_rewrite 已安装但无法正常工作【英文标题】:mod_rewrite installed but not working 【发布时间】:2011-12-18 14:14:04 【问题描述】:

在“启用的模块”下显示“mod_rewrite”。

这是我的 /var/www/.htaccess:

选项 +FollowSymlinks 选项 +索引 重写引擎开启 重写规则 ^foo.html$ index.html 重写日志“rw.log”##标题##

/var/apache2/httpd.conf:

选项索引 FollowSymlinks MultiViews 包括 允许覆盖所有 命令允许,拒绝 允许所有人 目录>

/var/www :

-rw-r--r-- 1 根根 111 2011-10-31 21:09 .htaccess -rw-r--r-- 1 根根 197 2011-10-31 21:01 index.html

然而,http://localhost/foo.html 并没有将我重定向到索引页面,而是给了我一个 404。重写日志尚未创建,并且 apache 错误日志除了 404 之外没有记录任何内容。我做错了什么?我花了几个小时阅读各种教程和 apache 文档,我完全被迷住了。谢谢!!

【问题讨论】:

【参考方案1】:

我刚刚在我的服务器上进行了快速试用,您在 .htaccess 中的行对我来说是错误的: +Index(应该是 +Indexes) RewriteLog “rw.log”## Heading ##(Apache 报告这里不允许这样做)。

现在尝试更改为 +Indexes 并删除 RewriteLog,然后查看 apache 日志中的最后一个错误。

【讨论】:

+Index => +Indexes 和 RewriteLog 已删除。不幸的是 /var/log/apache2/error.log 仍然只显示它找不到“foo.html”,并且当我告诉它时它正在重新启动。 找不到foo.html是在重启整个服务器?也许在这里粘贴错误消息。 哦不,我的意思是我经常重启 apache 以防万一。我认为这没有什么不正常:[Mon Oct 31 22:43:25 2011] [error] [client 127.0.0.1] script '/var/www/foo.html' not found 或无法统计 [Mon Oct 31 2011 年 22:43:25] [错误] [客户端 127.0.0.1] 脚本'/var/www/foo.html' 未找到或无法统计 [2011 年 10 月 31 日星期一 22:43:47] [通知] 捕获 SIGTERM,关闭 [Mon Oct 31 22:43:48 2011] [notice] Apache/2.2.16 (Ubuntu) php/5.3.3-1ubuntu9.5 配置了 Suhosin-Patch -- 恢复正常操作 [2011 年 10 月 31 日星期一 22:43:48] [通知] SIGHUP 已收到。尝试重新启动 [2011 年 10 月 31 日星期一 22:43:48] [通知] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 配置了 Suhosin-Patch -- 恢复正常操作 [10 月 31 日 22 日星期一: 2011 年 43:50] [错误] [客户端 127.0.0.1] 脚本 '/var/www/foo.html' 未找到或无法统计 如果您的 Apache 配置没有检测到 .htaccess 中的错误,那么它显然没有被读取。您可以尝试在其中输入一些垃圾或执行 -Indexes(删除 index.html)以查看它为什么不读取它。

以上是关于mod_rewrite 已安装但无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

mod_rewrite 没有工作,所以在修复它时得到 403 禁止

apache mod_rewrite 模块未安装

启用mod_rewrite的Chevereto安装

mod_rewrite 的问题 // Apache 2.2 // OpenSUSE 11.3

mod_rewrite重定向无法按预期工作

mod_rewrite 删除 .php 扩展名并保留 GET 参数