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