apache,URL重写启用,规则编写
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 "重写失败!";
- }
- ?>
2.浏览器打开,例如,我的就是: http://127.0.0.1:88/urlrewrite/p-103420.html ,效果如图
Apache Rewrite成功。