一、正则表达式教程

有一个经典的教程: 正则表达式30分钟入门教 程,大家可以搜索一下。我忘了在哪地址!
这个教程的确很简单,看完基本上写一些简单的正则就没有问题了。正则是一个需要长期使用的工具,隔段时间不用会忘记,所以我每次都看一遍这个教程。其实学过之后重要的就是一点内容。

简单罗列如下:

.换行符以外的所有字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束

copyright www.dedecms08.com

^ 匹配字符串的开始
$ 匹配字符串的结束
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,}重复n次或更多次
{n,m} 重复n到m次

应用替换时,前面第一个()中匹配的内容后面就用$1引用,第二个()中匹配的就用$2应用……
这个个 ()里面的东东叫原子组
分析一下 discuz搜索引擎优化 htaccess 里面的重写。

RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2

首先加入用户通过 forum-2-3.html 访问discuz论坛,那么先通过.htaccess过滤,看看是否需要.htaccess引导一下用户,如果满足列出的一系列RewriteCond的 条件那么就进行重写,

discuz的没有列出RewriteCond 所以应该全部都进行重写。 www.dedecms08.com
所以开始进行转写,
forum-2-3.html 这个正好符合 列出的
^forum-([0-9]+)-([0-9]+)\.html$
正则表达式。并且 $1 为 2 ,$2为3 ,

所以代入后面,即 forumdisplay.php?fid=2&page=3 加上前面的RewriteBase 指定的文件目录,那么就带他到制定目录的forumdisplay.php?fid=2&page=3 。

二、常见的.htaccess应用举例(部分例子引自四个例子实战讲解.htaccess文件rewrite规则)

4.1 防止盗链,如果来得要访问jpe jpg bmp png结尾的url 用户不是来自我们的网站,那么让他看一张我们网站的展示图片。
RewriteEngine OnRewriteCond %{HTTP_REFERER} !^http://(.+.)?mysite.com/ [NC]RewriteCond %{HTTP_REFERER} !^$RewriteRule .*.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

4.2 网站升级的时候,只有特定IP才能访问,其他的用户将看到一个升级页面
RewriteEngine onRewriteCond %{REQUEST_URI} !/upgrade.html$RewriteCond %{REMOTE_HOST} !^24\.121\.202\.30

RewriteRule $ http://www.xxxx.com/upgrade.html [R=302,L]

copyright www.dedecms08.com

4.3把老的域名转向新域名
# redirect from old domain to new domainRewriteEngine OnRewriteRule ^(.*)$http://www.yourdomain.com/$1[R=301,L]

三、常用示例

RewriteEngine On
RewriteRule index.html index.php

比如:http://www.xxxxx.com/index.html  -> http://www.xxxxx.com/index.php

RewriteRule ^test([0-9]*).html$ test.php?id=$1

比如:http://www.xxxxx.com/test8.html  -> http://www.xxxxx.com/test.php?id=8

RewriteRule ^cat-([0-9]+)-([0-9]+)\.html$ cat.php?id1=$1&id2=$2

比如:http://www.xxxxx.com/cat-1-3.html -> http://www.xxxxx.com/cat.php?id1=1&id2=3

RewriteRule ^cat-([a-zA-Z0-9\-]*)-([0-9]+)-([0-9]+)\.html$ cat.php?id0=$1&id1=$2&id2=$3

比如:http://www.xxxxx.com/cat-zbc2ac-3-5.html -> http://www.xxxxx.com/cat.php?id0=zbc2ac&id1=3&id2=5

RewriteRule ^cat1-([0-9]+)-([0-9]+)-([0-9]+)\.html$ cat1.php?id1=$1&id2=$2&id3=$3

比如:http://www.xxxxx.com/cat1-4-3-8.html -> http://www.xxxxx.com/cat1.php?id1=4&id2=3&id3=8

RewriteRule ^cat([0-9]*)/$ cat.php?id1=$1

比如:http://www.xxxxx.com/cat5/ -> http://www.xxxxx.com/cat.php?id1=5

RewriteRule ^catm([0-9]*)/([0-9]*)/$ catm.php?id1=$1&id2=$2

比如:http://www.xxxxx.com/catm6/3/ -> http://www.xxxxx.com/catm.php?id1=6&id2=3

希望对大家有所帮助!

http://www.dedecms08.com/seo/RewriteRule-htaccess_2.html

2012年12月10日相关推荐

  1. 12月10日周日下午广州Linuxer聚会(4大演讲主题+蜗窝大侠郭健主持)

    12月10日周日下午广州Linuxer聚会,四大主题演讲,加蜗窝大侠郭健主持.活动自发组织,就Linux论道,人人畅所欲言.欢迎报名. 相关活动: 已成最美好的回忆:北京Linuxer第一次线下交流研 ...

  2. 2020德勤面试开始了吗_2020下半年教师资格证面试时间已出!12月10日开始报名

    安徽省2020年下半年中小学教师资格考试面试详情 一.面试时间安排 (一)报名:2020年12月10日8:00-13日17:00: (二)审核:2020年12月10日8:00-14日17:00: (三 ...

  3. 【不容错过】12月10日:纳米孔测序科研团队大会NCM 2020亚太区特别专场

    一年一度的纳米孔测序科研团体大会(NCM 2020)主会场已于美国东部时间12月初在线上成功召开,汇集了全球超过50位领先的纳米孔测序学者,分享他们的纳米孔测序最新研究成果. 2020年12月10日, ...

  4. lol12月25服务器维护,lol12月10日维护到几点 英雄联盟12月10日10.25版本更新维护时间...

    lol12月10日维护到几点?2020年12月10日英雄联盟全区停机维护更新10.25版本的内容,大家需要等待至维护结束才能登录游戏体验新版本.不知道本次更新时长的玩家,下面小编带来了英雄联盟12月1 ...

  5. 形容人的内核是什么意思_成语雪泥鸿爪是形容什么的?雪泥鸿爪什么意思?蚂蚁庄园2020年12月10日答案...

    斑马线和斑马什么关系?大家都知道斑马和斑马线,但是两者之间有什么关系?蚂蚁庄园12月10日提到了这个问题,我们一起来看看正确答案吧. 问题:斑马线和斑马有什么关系? 答案:横线酷似斑马纹 答案解析:斑 ...

  6. 微软对 Windows 10 Mobile 的支持将于12月10日结束

    在 Windows 支持信息的官方 FAQ 页面上显示:对 Windows 10 Mobile 的支持计划将于今年12月10日结束,此后任何用户将不再会获得安全更新.补丁和免费的协助支持等. 为此,微 ...

  7. 12月10日站立会议

    12月10日(周一)完成情况: 今天已经接近第二个冲刺周期的尾声了,今天我们在单词测试的基础上加入了单词测试后的正误判断,该功能适应了用户的需求,使用户可以在测试之后看到自己的测试结果,从而来判断自己 ...

  8. 优化Docker镜像大小方案 2017年12月10日 17:54:46 阅读数:1774 标

    2019独角兽企业重金招聘Python工程师标准>>> 优化Docker镜像大小方案 2017年12月10日 17:54:46 阅读数:1774 标签: Docker 更多 个人分类 ...

  9. 【历史上的今天】12 月 10 日:世界上第一位程序员诞生;Ada 语言发布;第一人称射击游戏的开拓者

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 12 月 10 日,在 120 年前的今天,瑞典国王和挪威诺贝尔基金会首次颁发了诺贝尔奖.根据诺贝尔 ...

最新文章

  1. pythonffmpeg 推流_Python实现推流直播
  2. node编写定时任务,for循环只执行一遍的解决办法
  3. 学习Python开发培训有用吗
  4. 使用VMware Workstation搭建基于Linux的Oracle 10g RAC
  5. 沈向、洋周明:神经自然语言处理进展综述:建模,学习,推理
  6. 东北育才 数论专场第2场
  7. cad lisp 背景遮罩_给文字批量添加边界偏移因子为1.1(或其他值)的背景遮罩的源程序(有详细注解)...
  8. 3.4 滑动窗口的卷积实现-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  9. python定义一个圆类_(python)创建一个可以比较的自定义类
  10. NDK/JNI01--NDK下载配置
  11. java生成16位随机数_java中如何产生一个16位数字组成的随机字符串?谢谢各位了...
  12. Windows Server入门系列之三 硬盘分区
  13. 系统学习深度学习(一) --深度学习与神经网络关系
  14. 关于webuploader 在ie9上不能触发 input 的 change 事件
  15. android AES对称加密算法使用实例
  16. 剖析云计算和大数据落地后x86服务器的业务痛点
  17. 新版vip在线解析html源码
  18. 【零基础】MT4量化入门三:写一个双均线指标
  19. 怎么创建自己的博客网站
  20. Git 学习(篇六 --储藏与清理)

热门文章

  1. GEO振弦式钢筋计的组装
  2. Linux mysql学习笔记
  3. 健身行业泡沫被戳破,微分呗开启健身业变革“下半场”
  4. RISC-V IDE MRS使用笔记(二):Board chip status error
  5. My 的第一篇博客!!!
  6. 趣头条百 PB 规模 Hadoop 实践
  7. windows快速关闭nginx
  8. ubuntu系统界面图标不显示或者循环登录
  9. map clear java_Java Map clear()用法及代码示例
  10. oracle是用什么端口号,oracle10g常用端口号