如何测试是否启用了 mod_rewrite?

use*_*130 18 mod-rewrite apache-2.2

我正在 apache2 上为 wordpress 设置一个环境,在 ubuntu 12.04 的全新安装上。

为了让友好的 URLS 工作,我正在尝试设置 mod_rewrite。我遵循了我在网上找到的一些说明,并使用了 a2enmod。

现在。重新启动 apache 后,我想检查模块是否实际加载。

我找到的用于获取已加载模块列表的命令是:

apache2 -t -D 转储模块

但是,这会返回错误:

apache2:错误的用户名 ${APACHE_RUN_USER}

那么,我如何实际列出所有加载的模块,或者以其他方式检查是否已启用 mod_rewrite?

小智 19

KM01 的意思是,apachectl但这不会给你你需要的东西。这将控制服务器的启动/停止/重新启动,并提供一些状态信息。php 文件选项有效,但需要您做一些额外的工作。相反,请尝试从命令行运行 php:$ php -i。这输出什么phpinfo()输出,仅在命令行上。

您可以通过运行获取编译模块列表$ apache2 -l,但这对于使用 LoadModule(或其他)指令查看动态加载的模块没有帮助。

您可以通过查看 中的条目来了解正在动态加载哪些模块/etc/apache2/mods-enabled/。有些在同一目录中有一个额外的 conf 文件用于配置。这些模块不会被加载两次。您可以通过查看来查看要动态加载的可用模块列表/etc/apache2/mods-available/。您可以在命令行上使用$ a2enmod <module_name>. 您可以使用 卸载它们$ a2dismod <module_name>

完成启用/禁用后,您必须使用$ service apache2 restart或重新启动 apache $ apachectl graceful。您将需要 root (sudo) 权限来完成大部分(如果不是全部)这项工作。


KM.*_*KM. 5

而不是使用apache2命令,你有apachectl命令吗?它应该与apache2. 或者您可以使用提升的权限执行命令sudo apache2 -t -D DUMP_MODULES


Nic*_*net 5

在 centos 6.5+ 上,在终端输入

httpd -M | grep 'rewrite'
Run Code Online (Sandbox Code Playgroud)

如果在答案中,您可以看到 rewrite_module (shared),则表示它已安装。您可以删除 grep 'rewrite' 并获取 Apache 安装的所有模块的列表。


小智 4

1) 输入<?php phpinfo(); ?>一个 php 文件并保存并在服务器中运行该文件。

\n\n

2) 现在您可以查看信息列表,只需从浏览器\xe2\x80\x99s搜索菜单中搜索\xe2\x80\x9cmod_rewrite\xe2\x80\x9d即可

\n\n

3) 如果在 \xe2\x80\x9cLoaded Modules\xe2\x80\x9d 部分下找到该模块,则该模块已经加载,如下图所示,否则您需要进入下一步启用 mod_rewrite 模块。

\n\n

来源:http ://roshanbh.com.np/2008/04/check-enable-mod_rewrite-apache.html

\n