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

Posted

技术标签:

【中文标题】mod_rewrite 的问题 // Apache 2.2 // OpenSUSE 11.3【英文标题】:Issues with mod_rewrite // Apache 2.2 // OpenSUSE 11.3 【发布时间】:2011-03-31 13:43:17 【问题描述】:

Apache 已安装 OK,LoadModule mod_rewrite 已在 etc/apache2/httpd.conf 中取消注释,我们已取消注释 AllowOverrides 并遵循标准程序进行非常简单的安装,但 .htaccess 文件仍然无效 - 有没有上述设置的特定要求是否意味着 mod_rewrite 不起作用?

phpinfo() 显示 mod_rewrite 已加载,但我们根本无法使任何 .htaccess 文件工作,即使是最简单的测试

RewriteEngine on
RewriteRule ^link([^/]*).html$ testrule.php?link=$1 [L]

有什么想法吗?

【问题讨论】:

anl4u.com/?p=1162 这就是答案——网络上唯一一个有答案的博客!!! SuSEconfig 是问题所在! 您是否尝试将重写规则先放入虚拟主机声明中?这会告诉您您的问题是否与子目录 .htaccess 有关。 【参考方案1】:

另一个测试它是否正在运行

lsof | grep mod_rewrite

我在将'rewrite'添加到conf文件并运行更新后发现

SuSEconfig

它仍然没有加载,所以我也手动将它添加到这个文件中

/etc/apache2/sysconfig.d/loadmodule.conf

重启apache后一切正常!

【讨论】:

【参考方案2】:

AllowOverrides 也可以在 Directory 标签内配置,可能是 AllowOverrides 未注释且全局启用,但在 Directory 标签中显式关闭。

只是根据提供的信息发表评论,如果您可以粘贴 httpd.conf 的相关部分,那就太好了。

【讨论】:

以上是关于mod_rewrite 的问题 // Apache 2.2 // OpenSUSE 11.3的主要内容,如果未能解决你的问题,请参考以下文章

apache mod_rewrite 模块未安装

apache tomcat + apache httpd + mod_proxy + mod_rewrite + 表单发布数据

本地 Apache 服务器 mod_rewrite/pretty links 问题

Apache2 - 使用 mod_rewrite 代理到另一个域

Apache - 添加虚拟目录后无法再使用 mod_rewrite

Apache / mod_rewrite:更改 TLD,但保留子域、协议和查询字符串