我在 Suse 机器上安装了 Apache 2。我查看了它的配置文件,检查了 Yast 中安装了哪些模块,甚至尝试在 .htaccess 中编写重写规则,但不起作用。我似乎在任何地方都找不到 mod_rewrite。
我认为这意味着 mod_rewrite 未安装?我该如何确定?
答案1
“/usr/sbin/httpd -l” 将列出您编译的模块,而“/usr/sbin/httpd -M” 将根据您当前的配置文件列出您所包含的模块。
当然,您可能将 httpd 放在不同的路径中。
通常,编译模块列表较短,加载模块列表稍长。如果它在加载模块列表中,则看起来像“rewrite_module (shared)”。
答案2
将 放入RewriteEngine On
主配置中,然后进行配置测试。如果通过,则表示mod_rewrite
已安装(可能是内置的),如果出错,指出这RewriteEngine
是未知指令,则表示未安装。
此外,如果服务器错误日志没有表明 htaccess 文件无法正常运行,我会感到惊讶。
答案3
一个简单的 phpinfo() 将列出可用的模块。