前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Apache重载规则详解[一]

Apache重载规则详解[一]

作者头像
苦咖啡
发布2018-05-07 17:26:45
1.1K0
发布2018-05-07 17:26:45
举报
文章被收录于专栏:我的博客我的博客

1、先写个简单的重载规则(具体环境配置参考 http://www.0377joyous.com/archives/109.html) 2、在网站目录(我在网站根目录下做测试)下建立htaccess文件 内容如下: <IfModule mod_rewrite.c> RewriteEngine on RewriteRule list_([0-9]{1,})\.html$ list.php?cid=$1 </IfModule> 3、在同目录下建立一个list.php文件 内容如下: <?php echo “伪静态正常访问:”.$_GET[‘cid’]; ?> 4、然后在地址栏输入http://localhost/list_23.html(看能否有如下结果) 伪静态正常访问:23 5、这个显示说明你的伪静态配置也就是重载rewrite模块加载正确 下面开始进行规则学习(其实就是正则表达的学习)

用实际的案例来进行深入的学习

介绍之前先补充点基础知识: 其中Apache模块 mod_rewrite有以下指令(更多内容参考:http://www.apache.org/) RewriteBase 指令 语法:RewriteBase URL-path 作用域:directory, .htaccess 可以理解为作用路径(本人看法)

RewriteCond 指令 语法:RewriteCond TestString CondPattern 作用域:server config, virtual host, directory, .htaccess 可以理解为什么时候发生重载(其中这里的知识包含有$n(0-9)以及%n(1-9)以及rewritemap、环境变量) RewriteEngine 指令 语法:RewriteEngine on|off 作用域:server config, virtual host, directory, .htaccess 可以理解为重载开关

RewriteLock 指令 RewriteLog 指令 RewriteLogLevel 指令 RewriteMap 指令 RewriteOptions 指令

RewriteRule 指令 语法:RewriteRule Pattern Substitution 作用域:server config, virtual host, directory, .htaccess

要求1: 原来地址栏显示格式是: http://www.0377joyous.com/search.php?cid=23&name=城市&diqu=河南(其中汉字需要url编码) 重载过后显示: http://www.0377joyous.com/search_23_城市_河南.html(也就是三个参数用_隔开) 那么htaccess文件匹配规则可以这样写 RewriteRule search_([0-9]{1,})_(.*)_(.*)\.html$ search.php?cid=$0&name=$1&diqu=$2

详解: 既然需要三个参数那么就需要三个原子可以这样写:search_(.*)_(.*)_(.*)\.html$ 其中一个()表示一个原子,在后面可以用$n(其中n可以用0-9表示)获取匹配到的原子 其中.*表示匹配所有,后面那个\.html其中“\”是转义那个点用的,而$这个符号表示匹配结束符 (这个明白了吧?具体的正则知识可参见http://www.0377joyous.com/archives/520.html)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012年5月24日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档