http://www.phpchina.com/resource/manual/apache/rewrite/index.html
http://www.phpchina.com/resource/manual/apache/rewrite/rewrite_guide.html
======================================================
http://blog.csdn.net/zenwong/article/details/3093444
http://idear.blog.51cto.com/4097017/745033
一、Apache Rewrite原理
1.利用perl正则表达式规范,对URL进行替换
2.Apache Rewrite是拟静态方法之一
二、URL重写目的
1.创建友好的搜索引擎URL地址
比如重写之前:http://idear.blog.51cto.com/?p=1
重写之后:http://idear.blog.51cto.com/p-1.html
2.防盗链
3.模拟目录
4.域名跳转
三、具体配置
1. apache 配置
1).打开httpd.conf文件,找到#LoadModule rewrite_module modules/mod_rewrite.so 注释前面#
2).将所有的 AllowOverride 的设置为All,并重启apache
2. .htaccess文件 配置
1).从网上下载一个 .htaccess 文件,放到网站根目录 或者 需要执行的PHP文件所在的文件夹下。
注意:在 Windows 资源管理器里面不允许你建立 .htaccess 这样只有扩展名的文件。所以你必须先将文件保存为其他名字,例如 app.htaccess。然后进入命令行窗口(通过开始菜单运行 cmd.exe 程序即可),输入 ren a.htaccess .htaccess 命令来对文件改名。或者新建一个记事本,另存为.htaccess 即可。
2).用文本编辑器打开,清空所有内容
3).做一个简单重写规则#创建一个Rewrite Engine (URL重写工具)
RewriteEngine On
#定重写规则: 主要使用正则表达式
RewriteRule ^p\-([a-z0-9A-Z\-]+)\.html$ index.php\?p=$1
写好后保存。
四、测试效果
我新建了一个urlrewrite文件夹,把写好规则的 .htaccess 文件放进去,在urlrewrite文件夹内新建了一个index.php
1.index.php代码如下:if($_GET['p']){
echo '重写成功,p='.$_GET['p'];
}else{
echo '重写失败!';
}
?>
Apache Rewrite成功。