- 首先确定您使用的 Apache 版本,及是否加载了 mod_rewrite 模块。及是否加载了 mod_rewrite 模块 . mod_rewrite 的是一个 Apache 模块,可使服务器操纵请求的网址。根据一系列规则对传入的网址进行检查,规则中包含一个正则表达式来检测特定的格式。 如果在地址中发现了一个格式,并且满足适当的条件,该格式就会被一个替代的字符串或者是动作取代。
Apache 1.x 的用户请检查 conf/httpd.conf 中是否存在如下两段代码:
清单 1. Apache 1.x 的加载模块代码
LoadModule rewrite_module libexec/mod_rewrite.so
AddModule mod_rewrite.c
|
Apache 2.x 的用户请检查 conf/httpd.conf 中是否存在如下一段代码:
清单 2. Apache 2.x 的加载模块代码
LoadModule rewrite_module modules/mod_rewrite.so
|
如果存在,那么在配置文件(通常就是 conf/httpd.conf)中加入如下代码。此时请务必注意,如果网站使用通过虚拟主机来定义,请务必加到虚拟主机配置,即 <VirtualHost> 中去,如果加在虚拟主机配置外部将可能无法使用,改好后将 Apache 重启。稍后再解释这段代码的意思
Apache配置:
AllowOverride None??? 修改为: AllowOverride All
------------------------------------------
让apache服务器支持.htaccess如何让自己的本地APACHE服务器支持”.htaccess”呢?其实只要简单修改一下apache的httpd.conf设置就可以让APACHE支 持.htaccess了。打开httpd.conf文件用文本编辑器打开后,查找
<Directory />Options FollowSymLinksAllowOverride None</Directory>改为
<Directory />Options FollowSymLinksAllowOverride All</Directory>就可以了。
RewriteEngine On
RewriteBase /
伪静态
RewriteRule ^(article)-([0-9]+)\.htm$? $1.php\?id=$2
根据IP阻止用户访问
order allow,deny
deny from 127.0.0.1
allow from all
Redirects 转向
Redirect /article.php http://www.baidu.com
防止.htaccess文件被查看
order allow,deny
deny from all
制作错误提醒页面
ErrorDocument 404 http://www.baidu.com
添加 MIME 类型
AddType application/x-shockwave-flash swf
Tips: 设置类型为 application/octet-stream 将提示下载
改变缺省的首页文件
DirectoryIndex aa.html index.html index.pl default.htm
防止目录列表时显示
IndexIgnore *
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^([0-9a-zA-Z.]+)$? demo.php?id=$1
mod_rewrite 规则修正符