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).做一个简单重写规则
 
  1. #创建一个Rewrite Engine (URL重写工具)  
  2. RewriteEngine On  
  3. #定重写规则: 主要使用正则表达式 
  4. RewriteRule ^p\-([a-z0-9A-Z\-]+)\.html$ index.php\?p=$1 
 
写好后保存。

四、测试效果

我新建了一个urlrewrite文件夹,把写好规则的 .htaccess 文件放进去,在urlrewrite文件夹内新建了一个index.php
1.index.php代码如下:
 
  1. <? 
  2. if($_GET["p"]){ 
  3.     echo "重写成功,p=".$_GET["p"]; 
  4. }else
  5.     echo "重写失败!"
  6. ?> 
2.浏览器打开,例如,我的就是: http://127.0.0.1:88/urlrewrite/p-103420.html ,效果如图

 

Apache Rewrite成功。

 

 

 

 

 

 

 

posted @ 2013-05-24 15:45  陳聽溪  阅读(1141)  评论(0)    收藏  举报