来源:自学PHP网 时间:2020-09-28 17:29 作者:小飞侠 阅读:次
[导读] 使用Apache的rewrite技术...
今天带来使用Apache的rewrite技术教程详解
使用Apache的rewrite技术 做PHP项目中需要用到URL重定向技术,基本上的需求就是把比如 /user/heiyeluren 重定向到 /user.php?uid=heiyeluren 之类的URL上,当然,你也可以把 /article/200707291011.html重定向到 /article.php?id=200507291011 之类的,模拟好像是静态页面,能够隐藏URL真实地址,有助于雨鞋基本的安全防范等等。那么好像rewrite是个很好的解决办法。 要在Apache里运行rewrite的话,必须先安装mod_rewrite的组件,就是一个mod_rewrite.c文件,然后必须在./configure的时候要放上mod_rewrite就能安装。 我们看一个.htaccess文件的例子:
1 2 RewriteEngine On 3 RewriteBase / 4 RewriteCond %{REQUEST_FILENAME} -f [OR] 5 RewriteCond %{REQUEST_FILENAME} -d 6 RewriteRule ^.*$ - [S=42] 7 8 #RewriteRule ^share/$ /share.php [QSA,L] 9 RewriteRule ^tag/([^/]+)/?$ /user_tags.php?tag=$1 [QSA,L] 10 RewriteRule ^city/([^/]+)/?$ /user_city.php?tag=$1 [QSA,L] 11 #RewriteRule ^([^/]+)/day/([^/]+)/?$ /user_share.php?id=$1&s=1&selTime=$2 [QSA,L] 12 #RewriteRule ^([^/]+)/day/([^/]+)/?$ /user_share.php?id=$1&s=1&selTime=$2 [QSA,L] 13 14 RewriteRule ^([^/]+)/day/([^/]+)/?$ /user_share.php?id=$1&s=1&selTime=$2 [QSA,L] 15 RewriteRule ^([^/]+)/week/([^/]+)/?$ /user_share.php?id=$1&s=2&selTime=$2 [QSA,L] 16 RewRiteRule ^([^/]+)/month/([^/]+)/?$ /user_share.php?id=$1&s=3&selTime=$2 [QSA,L] 17 18 RewriteRule ^([^/]+)/day/?$ /user_share.php?id=$1&s=1 [QSA,L] 19 RewriteRule ^([^/]+)/week/?$ /user_share.php?id=$1&s=2 [QSA,L] 20 RewriteRule ^([^/]+)/month/?$ /user_share.php?id=$1&s=3 [QSA,L] 21 22 RewriteRule ^([^/]+)/?$ /user_share.php?id=$1 [QSA,L] 23 比较长吧,我们就简单关注一下关键的内容。
Text: . 匹配任意单个字符 [chars] 匹配当前字符 [^chars] 不匹配当前字符 text1|text2 包含text1或者text2任何一个 Quantifiers: Grouping: Anchors: Escaping: 基本规则如上,比如下面的正则表达式:^/([^/]+)/~([^/]+)/(.*)$ 就是能够匹配象 /Language/~ Realname/.../File 这样的路径。 那么从这个角度去看上面的内容就比较容易理解了。我们简单看一下RewriteRule指令的规则: 举一反三,就很容易理解规则如何去写,也就能够理解上面规则脚本的内容了。 没有清楚的,请参考附上的链接,更深入的了解具体内容。写的不好请见谅。
以上就是关于使用Apache的rewrite技术全部内容,感谢大家支持自学php网。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com