Apache Rewrite 拟静态

mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面。一些防盗链就是通过该方法做到的。

00x1 启动rewrite引擎

  • RewriteEndine on

可以使用两种方式来写rewite,一种是直接在httpd.conf当中写。一种则是写在.htaccess中。

00x2 如何启用apache rewrite?

  • 在httpd.conf当中找到“LoadModule rewrite_module modules/mod_rewrite.so”将#号去除即开启了apache rewrite。
  • 开启.htaccess,依旧是在httpd.conf文件当中的AllowOverride all的“#”号去除即可。

可以在phpinfo界面当中查看rewrite开启信息,Loaded Modules处查看:mod_rewrite 如存在即已开启。

00x3 书写Rewrite代码:

  1. 如果要直接在httpd.conf中输入的话,则输入在“</IfModule>”标签结尾处。

  2.在htaccess书写。在windows当中是不允许建立这样的文件,那么我们要如何建立呢?先建立一个htaccess.txt可以进入cmd,键入:rename htaccess.txt .htaccess便可以生成一个.htaccess文件。简单的说就是建一个txt然后使用cmd重命名为htaccess即可。

00x4 Rewrite规则学习

  新建立好一个.htaccess文件了以后,使用记事本打开。开始学习Rewrite规则。

开始第一个案例:

RewriteEngine on #rewriteengine为重写引擎开关on为开启off为关闭
RewriteRule ^(.*?).html 1.php?id=$1

Rewriterule是重写规则。后面的是正则。

1.php的代码:

<?php
echo $_GET[‘id‘];
 ?>

写好rewrite了以后重启apache。然后访问127.0.0.1/t_test.html

输出的效果如下所示:

成功的实现了伪静态。

这种仅仅只是以文件的方式写伪静态,我们还可以以文件夹的方式写

直接在刚才的基础上使用正则($)的作用来操作。代码如下:

RewriteEngine on
RewriteRule ^t_(.*)/$ 1.php?id=$1

可以随便你怎么写就怎么写。

相关知识



mod_rewrite 规则修正符

  • 1) R 强制外部重定向
  • 2) F 禁用URL,返回403HTTP状态码。
  • 3) G 强制URL为GONE,返回410HTTP状态码。
  • 4) P 强制使用代理转发。
  • 5) L 表明当前规则是最后一条规则,停止分析以后规则的重写。
  • 6) N 重新从第一条规则开始运行重写过程。
  • 7) C 与下一条规则关联8) T=MIME-type(force MIME type) 强制MIME类型
  • 9) NS 只用于不是内部子请求
  • 10) NC 不区分大小写
  • 11) QSA 追加请求字符串
  • 12) NE 不在输出转义特殊字符 \%3d$1 等价于 =$1
时间: 2024-10-10 23:50:06

Apache Rewrite 拟静态的相关文章

Apache Rewrite url重定向功能的简单配置

Rewrite url重定向就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范.平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等 1.Apache Rewrite的主要功能 就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范.平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等 2.Apache Rewrite的配置 Apache下的Rewrite配置主要有两种,一种是针对整个apache服务器的配置,此种配置的Rewrite规则是直接在httpd.con

Apache Rewrite的主要功能

#Apache Rewrite的主要功能 #就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范.#平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等 在httpd.conf中去掉下面这句前面的#LoadModule rewrite_module modules/mod_rewrite.so 下面再继续写

apache rewrite规则

在开篇之前:我想说这篇文章其实是我刚刚接触Rewrite的时候学习的文档,应属转载,但是在这里我不想写明原地址,原因是文章中大多数给出的配置命令经实验都是错误的.需要原文的可以在谷歌上搜索一下"Apache Rewrite 规则详解"好在我对正则表达式有所了解,把原文的代码都通过自己的理解改写了一下,并都能够达到题设的要求,并联想需求添加了例子.本文是经过我实验后修改有效的,如果还是出现500错误请去掉 # 及后面的注释(也许有些环境不支持中文注解),如果还是错误请在下面给我留言. 1

Apache Rewrite 规则详解

转自:http://www.cnblogs.com/top5/archive/2009/08/12/1544098.html 1.Rewrite规则简介: Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言.可基于服务器级的(httpd.conf)和目录级的 (.htaccess)两种方式.如果要想用到rewrite模块,必须先安装或加载rewrite模块.方法有两种一种是编译apache的时候就直接 安装rewrite模块,别一种是编译apache时以DSO模式安装

Ubuntu14.14开启Apache Rewrite功能的方法详解

Ubuntu上开启Apache Rewrite功能的方法发布时间:2012-09-11编辑:脚本学堂本文介绍ubuntn系统中开启apache的urlrewrite功能的方法. 在Windows上开启Apache的urlRewrite非常简单,因为apache的用户配置都是放在http.conf文件中,要开启Rewrite功能,只需要把该文件中LoadModule rewrite_module modules/mod_rewrite.so前面的注视去掉,然后重启APACHE即可. 但在Ubunt

apache rewrite规则白名单示例

如何在apache中使用rewrite规则配置白名单,这里分享一个方法. 今天弄了半天apache 的rewrite 规则,还是没有配置出符合的规则.经同事指点,成功. 需求:六个文件的入口,其他都重定向到index自己的思路:正则找出不是六个文件的URL的模式,进行过滤.对比同事的结果,自己思路的问题:1. 想找出所有不符合规则的,越想越多,无法下手.---------------- 思路错误,应该 制定白名单,2. 概念错误, 弄错 REQUEST_URI 和 REQUEST_STRING

centos 开启apache rewrite模式

mod_rewrite能使网页伪静态,对于搜索引擎友好,下面就是开启这个功能的说明!启用mod_rewrite模块在conf目录的httpd.conf文件中找到 LoadModule rewrite_module modules/mod_rewrite.so 将这一行前面的#去掉.2.在要支持url rewirte的目录启用 Options FollowSymLinks和AllowOverride All Options Indexes FollowSymLinks AllowOverride

Apache Rewrite实现URL的跳转和域名跳转

Apache Rewrite实现URL的跳转和域名跳转 Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言.可基 于服务器级的(httpd.conf)和目录级的 (.htaccess)两种方式.如果要想用到rewrite模块,必须先安装或加载rewrite模块.方法有两种一种是编译apache的时候就直接 安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块. 基于服务器级的(httpd.co

WordPress 中文URL不支持 Apache Rewrite 不支持中文 Ipage不支持中文

WordPress 站,在国内空间上好好的,只是限制容量... 于是平移到国外Ipage空间上去,但是发现个致命的问题:不支持中文URL!!! http://my.oschina.net/cart/ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>400 Bad Request - http://my.oschina.net/cart/</