Apache在Windows下使用Mod_rewrite模块

本文介绍了如何在 Apache 服务器上进行 URL 重写配置,包括启用 mod_rewrite 模块,修改 http.conf 文件允许 .htaccess 文件覆盖,以及通过 DOS 命令创建 .htaccess 文件实现具体的重写规则。

很简单的配置,确花了我一些时间,把它贴出来,给大家参考

1 在Apache/conf/http.conf中,打开
  LoadModule rewrite_module modules/mod_rewrite.so
  AddModule mod_rewrite.c (看程序版本)

<Directory “C:/Program Files/Apache Group/Apache/htdocs”>

Options Indexes FollowSymLinks

裡面會包著一行:
AllowOverride None
把它改成
AllowOverride All

Order allow,deny
Allow from all

</Directory>

重新启动Apache使修改生效。

2 使用DOS的Copy命令建立.htaccess文件,如下
RewriteEngine on
RewriteBase /itscms
RewriteRule cms/.*?/.html cms.php

<think>我们被要求检查Ubuntu系统中Apache2服务器的mod_rewrite模块是否启用。 根据提供的引用,我们可以通过几种方法来检查。 方法1:检查已启用的模块Apache2中,模块通常通过符号链接放置在mods-enabled目录下。我们可以检查mod_rewrite模块是否在该目录下被链接。 命令: ls /etc/apache2/mods-enabled/rewrite.load 如果该文件存在,则说明mod_rewrite模块已启用。 方法2:使用apache2ctl命令 我们可以使用apache2ctl命令来列出所有已启用的模块,并检查输出中是否有mod_rewrite。 命令: apache2ctl -M | grep rewrite 如果输出中包含“rewrite_module”,则说明模块已启用。 方法3:检查模块加载情况(通过查看配置文件) 虽然引用[1]中提到了在mods-available和mods-enabled中查看,但我们也可以直接查看mods-enabled目录下的链接。 另外,引用[1]还提到了一个命令: grep rewrite ./ -nR 但我们可以更精确地检查: grep -r "mod_rewrite" /etc/apache2/mods-enabled/ 如果找到包含"LoadModule rewrite_module"的行,则说明已启用。 注意:在Ubuntu中,Apache2的模块管理是通过a2enmod和a2dismod来启用和禁用的。因此,如果之前启用了,那么mods-enabled目录下应该有对应的链接。 步骤总结: 1. 检查mods-enabled目录下是否存在rewrite.load的链接。 2. 使用apache2ctl命令查看加载的模块列表。 3. 如果以上都不确定,可以检查Apache2的主配置文件或虚拟主机配置中是否加载了mod_rewrite。 但通常,在Ubuntu中,我们使用前两种方法就足够了。 根据引用[1]中的示例,他们通过以下命令确认了rewrite模块已加载: $ grep rewrite ./ -nR ... 找到了rewrite.load文件,并且mods-enabled目录下也有该文件。 因此,我们可以给出具体的检查步骤。 回答: 要检查Ubuntu系统中Apache2服务器的mod_rewrite模块是否启用,可以按照以下步骤操作: 1. 使用命令检查`mods-enabled`目录中是否有`rewrite.load`的符号链接: ```bash ls /etc/apache2/mods-enabled/ | grep rewrite.load ``` 如果输出包含`rewrite.load`,则模块已启用。 2. 使用`apache2ctl`命令查看已加载的模块: ```bash apache2ctl -M | grep rewrite ``` 如果输出中包含`rewrite_module`,则说明模块已加载。 3. 如果上述方法无法确定,可以检查模块配置文件: ```bash cat /etc/apache2/mods-enabled/rewrite.load ``` 正常情况应该包含一行类似这样的内容: ``` LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so ``` 这表示模块被正确加载。 如果发现模块没有启用,可以使用以下命令启用它: ```bash sudo a2enmod rewrite sudo systemctl restart apache2 ``` 注意:修改配置后需要重启Apache2服务。 根据引用[1]中的信息,他们通过检查文件确认了模块的存在[^1]。 另外,引用[4]和[5]中提到了在.htaccess或配置文件中使用RewriteEngine On,这要求mod_rewrite模块必须启用[^4][^5]。 因此,通过以上步骤可以确认mod_rewrite模块是否启用。 相关问题: 1. 如何在Ubuntu中启用Apache2的mod_rewrite模块? 2. 启用mod_rewrite模块后,如何配置URL重写规则? 3. 如何验证Apache2的URL重写规则是否生效?</think>### 检查 Ubuntu 中 Apache2 的 mod_rewrite 模块状态 要检查 Ubuntu 系统中 Apache2 的 `mod_rewrite` 模块是否启用,请按以下步骤操作: #### 方法 1:通过模块目录检查(推荐) ```bash # 检查模块是否已启用 ls /etc/apache2/mods-enabled | grep rewrite.load # 若输出 rewrite.load,则表示已启用 # 若无输出,表示未启用 ``` **说明**: Ubuntu 中 Apache2 模块通过符号链接管理。若在 `/etc/apache2/mods-enabled` 目录中找到 `rewrite.load` 链接,说明模块已激活[^1]。 #### 方法 2:通过模块列表检查 ```bash # 列出所有已加载模块 apache2ctl -M | grep rewrite # 若输出 rewrite_module,则表示已启用 # 示例输出:rewrite_module (shared) ``` #### 方法 3:验证模块文件存在性 ```bash # 确认模块文件存在(即使未启用) ls /usr/lib/apache2/modules/mod_rewrite.so ``` 此命令验证模块是否已安装(所有系统均应有此文件)[^1]。 --- ### 启用方法(若未启用) ```bash # 启用模块 sudo a2enmod rewrite # 重启 Apache2 sudo systemctl restart apache2 ``` --- ### 验证是否生效 创建测试文件 `/var/www/html/test.php`: ```php <?php if (in_array('mod_rewrite', apache_get_modules())) { echo "mod_rewrite 已启用"; } else { echo "mod_rewrite 未启用"; } ``` 访问 `http://localhost/test.php` 查看结果。 --- ### 关键配置文件说明 1. **模块加载文件** `/etc/apache2/mods-available/rewrite.load`:包含加载指令 ```apache LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so ``` 2. **重写规则配置** 通常在虚拟主机文件(如 `/etc/apache2/sites-available/000-default.conf`)或 `.htaccess` 中添加: ```apache <Directory /var/www/html> Options Indexes FollowSymLinks AllowOverride All # 必须设置为 All 才能使用 .htaccess Require all granted </Directory> ``` 重启服务后生效[^3][^4]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值