php 伪静态 rewriterule,PHP伪静态 RewriteRule-htaccess详细规则使用说明
伪静态实际上是利用PHP把当前地址解析成另一种方法来访问网站,要学伪静态规则的写法,要懂一点正则
一、正则表达式教程
有一个经典的教程:正则表达式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
首先加入用户通过 linuxidc.com/forum-2-3.html 访问discuz论坛,那么先通过.htaccess过滤,看看是否需要.htaccess引导一下用户,如果满足列出的一系列RewriteCond的 条件那么就进行重写,
discuz的没有列出RewriteCond 所以应该全部都进行重写。
所以开始进行转写,
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.linuxidc.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.what21.com/index.html -> http://www.what21.com/index.php
RewriteRule ^test([0-9]*).html$ test.php?id=$1
比如:http://www.what21.com/test8.html -> http://www.what21.com/test.php?id=8
RewriteRule ^cat-([0-9]+)-([0-9]+)\.html$ cat.php?id1=$1&id2=$2
比如:http://www.what21.com/cat-1-3.html -> http://www.what21.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.what21.com/cat-zbc2ac-3-5.html -> http://www.what21.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.what21.com/cat1-4-3-8.html -> http://www.what21.com/cat1.php?id1=4&id2=3&id3=8
RewriteRule ^cat([0-9]*)/$ cat.php?id1=$1
比如:http://www.what21.com/cat5/ -> http://www.what21.com/cat.php?id1=5
RewriteRule ^catm([0-9]*)/([0-9]*)/$ catm.php?id1=$1&id2=$2
比如:http://www.what21.com/catm6/3/ -> http://www.what21.com/catm.php?id1=6&id2=3
其中不提倡贪婪模式,把0-9都改成([\d]*?) *?允许空
php 伪静态 rewriterule,PHP伪静态 RewriteRule-htaccess详细规则使用说明相关推荐
- 杰奇linux伪静态,常用的13个.htaccess重写URL的伪静态规则
网站伪静态重写url是提高URL标准化一个比较实用的方法: 下面是我收集的13种伪静态重写规则, 使用方法:把规则里的域名 http://example.com 改成你自己的网站域名 放在网站根目录下 ...
- zblog php伪静态,zblog php 伪静态设置详解
今天有两个用户来咨询 zblog php 博客程序的伪静态设置方法,所以抽空就写了写关于 zblog 伪静态的设置教程,有需要的就拿去吧,如果转载的话,就注明一下文章的来源哦. zblog 伪静态规则 ...
- 帝国cms linux伪静态规则,置帝国cms如何设置tag标签伪静态化 linux伪静态设置方法_博客...
<置帝国cms如何设置tag标签伪静态化 linux伪静态设置方法_博客>由会员分享,可在线阅读,更多相关<置帝国cms如何设置tag标签伪静态化 linux伪静态设置方法_博客(6 ...
- php标签嵌入规范,HTML标签嵌套的详细规则
这次给大家带来HTML标签嵌套的详细规则,HTML标签嵌套的注意事项有哪些,下面就是实战案例,一起来看一下. 最近在重新学习HTML的知识,算是对HTML的一个重新认识吧!别小看了这东西,一切的网页可 ...
- TopCoder 详细规则入门(灰常实用)
TopCoder 详细规则入门(灰常实用) 基本规则 TopCoder的比赛类型很多,最常见的是周赛SRM(Single Round Match),另外还有TCHS SRM(TopCoder High ...
- 三分钟了解阿里云学生机购买限制条件详细规则
三分钟了解阿里云学生机购买限制条件详细规则 <云翼计划>是阿里云为学生群体提供优惠学生机的活动,符合条件的学生用户9.5元的优惠价格即可购买一台1核2G学生服务器,下面赵一八笔记(www. ...
- VLC详细的使用说明以及配置…
原文地址:VLC详细的使用说明以及配置说明综合示范实例精通VLC开发 作者:向前冲 vlc的全名是Video Lan Client,是一个开源的.跨平台的视频播放器.VLC支持大量的音视频传输.封装和 ...
- nginx下安装配置modsecurity waf防火墙(附完整编译、配置、排错、详细规则)
ModSecurity是一个免费.开源的Apache模块,可以充当Web应用防火墙(WAF).ModSecurity是一个入侵探测与阻止的引擎.它主要是用于Web应用程序所以也可以叫做Web应用程序防 ...
- 超详细exe4j使用说明
超详细exe4j使用说明 1. 准备工作 ① 官网下载exe4j ,官网地址:https://www.ej-technologies.com/download/exe4j/files ② 确保已经安装 ...
最新文章
- JVM解读-性能调优实例
- 【JVM】肝了一周,吐血整理出这份超硬核的JVM笔记(升级版)!!
- 怎样检查Android网络连接状态
- (五)Oracle学习笔记—— 视图
- iOSTableview 禁止下拉,允许上拉
- python 清空所有对象_学习python第38天
- 制作github博客
- 华为mate10手机听筒测试软件,华为mate 10功能说:这几个设置,让你通话体验直线上升,简直了!...
- linux 虚拟机设置好固定ip 修改了 dns 网络需要设置成桥接模式
- java 快速从树节点找到数据_14期每日分享Java程序员分享超全哈希相关的知识
- java 日期 yyyy_java日期中YYYY与yyyy的区别
- COSCon’19开源教育论坛:开源无疆、教育无界
- 学术论文中的Introduction与Background
- 跟踪fork: Resource temporarily unavailable的原因
- mysql 高并发 响应时间_高并发,你真的了解吗?
- Dialog的高冷用法
- pycuda的安装,wheel报错
- 线性代数-克莱姆法则
- c语言割线法求方程跟,分别用牛顿法和割线法求解方程 x^3-6x^2+9x-2=0在区间[3,4]上的近似根.要求满足精度|x*-xk|...
- 用纯CSS让子DIV自适应父DIV的高度
热门文章
- AutoCAD2019+vs2019+C# 二次开发学习笔记day01(持续更新)
- 一文搞懂I2S通信总线
- js怎么向上取整_JavaScript Math.ceil 方法(对数值向上取整)
- 重拳!科研失信将面临43项联合惩戒,包括撤销院士资格等!
- Windows电脑如何更改账户类型
- Django(Celery+日志)
- form 关于form表单提交方式get和post的区别?
- 搜索排名:基于lightgbm的learn2rank
- 这个蟹我一抓,五两,这个称上放放,你看
- el-table 树形表格 自定义展开图标_图标制作工具 Icon Slate for mac