2024年5月11日发(作者:)

【转】 通过 Apache 配置 Rewrite 支持 .htaccess

2011-03-01 14:16

转载自 分享

最终编辑 ruhaole

1. 首先确定您使用的 Apache 版本,及是否加载了 mod_rewrite 模块。及是否加载了 mod_rewrite 模块 .

mod_rewrite 的是一个 Apache 模块,可使服务器操纵请求的网址。根据一系列规则对传入的网址进行检查,

规则中包含一个正则表达式来检测特定的格式。 如果在地址中发现了一个格式,并且满足适当的条件,该格

式就会被一个替代的字符串或者是动作取代。

Apache 1.x 的用户请检查 conf/ 中是否存在如下两段代码:

清单 1. Apache 1.x 的加载模块代码

LoadModule rewrite_module libexec/mod_

AddModule mod_rewrite.c

Apache 2.x 的用户请检查 conf/ 中是否存在如下一段代码:

清单 2. Apache 2.x 的加载模块代码

LoadModule rewrite_module modules/mod_

如果存在,那么在配置文件(通常就是 conf/)中加入如下代码。此时请务必注意,如果网站使用通过虚拟

主机来定义,请务必加到虚拟主机配置,即 中去,如果加在虚拟主机配置外部将可能无法使用,改好

后将 Apache 重启。稍后再解释这段代码的意思

Apache配置:

支持 配置和目录 .htaccess配置

启用rewrite

# LoadModule rewrite_module modules/mod_

去除前面的 #

LoadModule rewrite_module modules/mod_

启用.htaccess

AllowOverride None

修改为:

AllowOverride All

----------------------------------------------------------

--------------------

让apache服务器支持.htaccess

如何让自己的本地APACHE服务器支持”.htaccess”呢?其实只要简单修改一下apache的设置就可以让

APACHE支 持.htaccess了。打开文件用文本编辑器打开后,查找

Options FollowSymLinks

AllowOverride None

改为

Options FollowSymLinks

AllowOverride All

就可以了。

RewriteEngine On

RewriteBase /

伪静态

RewriteRule ^(article)-([0-9]+).htm$ $?id=$2

根据IP阻止用户访问

order allow,deny

deny from 127.0.0.1

allow from all

Redirects 转向

Redirect /

防止.htaccess文件被查看

order allow,deny

deny from all

制作错误提醒页面

ErrorDocument 404

添加 MIME 类型

AddType application/x-shockwave-flash swf

Tips: 设置类型为 application/octet-stream 将提示下载

改变缺省的首页文件

DirectoryIndex