2012年12月10日
有一个经典的教程: 正则表达式30分钟入门教 程,大家可以搜索一下。我忘了在哪地址!
这个教程的确很简单,看完基本上写一些简单的正则就没有问题了。正则是一个需要长期使用的工具,隔段时间不用会忘记,所以我每次都看一遍这个教程。其实学过之后重要的就是一点内容。
简单罗列如下:
.换行符以外的所有字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{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]
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日相关推荐
- 12月10日周日下午广州Linuxer聚会(4大演讲主题+蜗窝大侠郭健主持)
12月10日周日下午广州Linuxer聚会,四大主题演讲,加蜗窝大侠郭健主持.活动自发组织,就Linux论道,人人畅所欲言.欢迎报名. 相关活动: 已成最美好的回忆:北京Linuxer第一次线下交流研 ...
- 2020德勤面试开始了吗_2020下半年教师资格证面试时间已出!12月10日开始报名
安徽省2020年下半年中小学教师资格考试面试详情 一.面试时间安排 (一)报名:2020年12月10日8:00-13日17:00: (二)审核:2020年12月10日8:00-14日17:00: (三 ...
- 【不容错过】12月10日:纳米孔测序科研团队大会NCM 2020亚太区特别专场
一年一度的纳米孔测序科研团体大会(NCM 2020)主会场已于美国东部时间12月初在线上成功召开,汇集了全球超过50位领先的纳米孔测序学者,分享他们的纳米孔测序最新研究成果. 2020年12月10日, ...
- lol12月25服务器维护,lol12月10日维护到几点 英雄联盟12月10日10.25版本更新维护时间...
lol12月10日维护到几点?2020年12月10日英雄联盟全区停机维护更新10.25版本的内容,大家需要等待至维护结束才能登录游戏体验新版本.不知道本次更新时长的玩家,下面小编带来了英雄联盟12月1 ...
- 形容人的内核是什么意思_成语雪泥鸿爪是形容什么的?雪泥鸿爪什么意思?蚂蚁庄园2020年12月10日答案...
斑马线和斑马什么关系?大家都知道斑马和斑马线,但是两者之间有什么关系?蚂蚁庄园12月10日提到了这个问题,我们一起来看看正确答案吧. 问题:斑马线和斑马有什么关系? 答案:横线酷似斑马纹 答案解析:斑 ...
- 微软对 Windows 10 Mobile 的支持将于12月10日结束
在 Windows 支持信息的官方 FAQ 页面上显示:对 Windows 10 Mobile 的支持计划将于今年12月10日结束,此后任何用户将不再会获得安全更新.补丁和免费的协助支持等. 为此,微 ...
- 12月10日站立会议
12月10日(周一)完成情况: 今天已经接近第二个冲刺周期的尾声了,今天我们在单词测试的基础上加入了单词测试后的正误判断,该功能适应了用户的需求,使用户可以在测试之后看到自己的测试结果,从而来判断自己 ...
- 优化Docker镜像大小方案 2017年12月10日 17:54:46 阅读数:1774 标
2019独角兽企业重金招聘Python工程师标准>>> 优化Docker镜像大小方案 2017年12月10日 17:54:46 阅读数:1774 标签: Docker 更多 个人分类 ...
- 【历史上的今天】12 月 10 日:世界上第一位程序员诞生;Ada 语言发布;第一人称射击游戏的开拓者
整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 12 月 10 日,在 120 年前的今天,瑞典国王和挪威诺贝尔基金会首次颁发了诺贝尔奖.根据诺贝尔 ...
最新文章
- pythonffmpeg 推流_Python实现推流直播
- node编写定时任务,for循环只执行一遍的解决办法
- 学习Python开发培训有用吗
- 使用VMware Workstation搭建基于Linux的Oracle 10g RAC
- 沈向、洋周明:神经自然语言处理进展综述:建模,学习,推理
- 东北育才 数论专场第2场
- cad lisp 背景遮罩_给文字批量添加边界偏移因子为1.1(或其他值)的背景遮罩的源程序(有详细注解)...
- 3.4 滑动窗口的卷积实现-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
- python定义一个圆类_(python)创建一个可以比较的自定义类
- NDK/JNI01--NDK下载配置
- java生成16位随机数_java中如何产生一个16位数字组成的随机字符串?谢谢各位了...
- Windows Server入门系列之三 硬盘分区
- 系统学习深度学习(一) --深度学习与神经网络关系
- 关于webuploader 在ie9上不能触发 input 的 change 事件
- android AES对称加密算法使用实例
- 剖析云计算和大数据落地后x86服务器的业务痛点
- 新版vip在线解析html源码
- 【零基础】MT4量化入门三:写一个双均线指标
- 怎么创建自己的博客网站
- Git 学习(篇六 --储藏与清理)