澳门新葡亰平台游戏网站使用Apache的rewrite技术

做PHP项目中需求用到U昂科雷L重定向能力,基本上的供给正是把例如/user/heiyeluren 重定向到 /user.php?uid=heiyeluren
之类的U卡宴L上,当然,你也能够把 /article/二〇〇五07291011.html重定向到
/article.php?id=二零零五07291011
之类的,模拟好疑似静态页面,能够掩没UHighlanderL真实地址,有助于雨鞋基本的安全防止等等。那么看似rewrite是个很好的消弭办法。

咱俩看二个.htaccess文本的例证:

Quantifiers: ? 零个要么二个?号前的字符 *
零个要么私自个随机长度的大肆字符 + 五个只怕随意个随机长度的字符

尚无驾驭的,请参见附上的链接,更深透的摸底具体内容。写的不佳请见谅。

中央准绳如上,比如下边包车型客车正则表明式:^/([^/]+)/~([^/]+)/(.*卡塔尔国$
正是能够相配象 /Language/~ Realname/…/File 那样的门路。

使用Apache的rewrite技术

Escaping: /char 使用/来进展特殊字符的转义,包罗”.[](卡塔尔(قطر‎”等字符的转义

正如长呢,我们就大致关心一下主要的内容。IfModule/IfModule之间正是概念的故事情节,RewriteEngine正是明确是或不是运转UCRUISERL重写功用,RewriteBase正是骨干的路线是何等,最要害的正是下面的RewriteRule,正是我们需求重写的准则了,这里运用了合营Perl准绳的正则表明式:

Grouping: (text) Grouping of text (either to set the borders of an
alternative or for making backreferences where the Nth group can be used
on the RHS of a RewriteRule with $N)

推而广之,就非常轻巧明白法规如何去写,也就可以理解地点法则脚本的剧情了。

要在Apache里运维rewrite的话,必得先安装mod_rewrite的机件,就是多个mod_rewrite.c文件,然后必需在./configure的时候要放上mod_rewrite就会安装。平时配备rewrite的话,能够在中间配备,也能在网页当前目录的.htaccess文件里开展定义来决定重定向去那么些文件,那样的话,就相当富有灵活性了,相通也能够切合设想主机客商来做。

Anchors: ^ 相配内容开端标识 $ 相配内容结束标记

1 IfModule mod_rewrite.c2 RewriteEngine On3 RewriteBase /4 RewriteCond
%{REQUEST_FILENAME} -f [OR]5 RewriteCond %{REQUEST_FILENAME} -d6
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 /IfModule

附:Apache Rewrite 技术 模块 mod_rewrite _rewrite.htmlURubiconL重写指南
HTTP服务器 2.0版本文书档案

那么从那个角度去看上面包车型大巴剧情就比较简单驾驭了。我们简要看一下RewriteRule指令的规规矩矩:RewriteRule
访谈的路径需求针对的真实路线那样就很清楚了,举个例子说作者要把/user/heiyeluren重定向到/user.php?uid=heiyeluren那么作者的规行矩步就务须这么:RewriteRule
^user/([^/]+)$ ^/user.php?uid=$2 [QSA,L]

Text: . 相配自便单个字符 [chars] 匹配当前字符 [^chars]
不相称当前字符 text1|text2 满含text1或许text2任何三个

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图