加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 海宁网 (https://www.hainingwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

PHP伪静态_PHP动态URL静态化介绍

发布时间:2022-07-07 15:37:23 所属栏目:编程 来源:互联网
导读:动态URL静态化的主要目的,其一是搜索引擎优化(SEO),其二是面向用户友好。动态URL静态化是把一个动态地址转化成一个静态地址。其实,这个静态地址的内容还是从动态地址来的,只是看起来,类似一个静态地址。例如,本站页面 http://www.xxx.cn/blog/read.php
  动态URL静态化的主要目的,其一是搜索引擎优化(SEO),其二是面向用户友好。动态URL静态化是把一个动态地址转化成一个静态地址。其实,这个静态地址的内容还是从动态地址来的,只是看起来,类似一个静态地址。例如,本站页面
 
  http://www.xxx.cn/blog/read.php/416.htm
 
  其真实地址是
 
  http://www.xxx.cn/blog/read.php?416
 
  采用一定的技术,把第一个地址指向第二个地址,也就实现了动态URL静态化的目的。
 
  如 果进一步做到搜索引擎优化(SEO),可以尝试把地址修改成容易理解的文字,例如,416.htm可以修改为 child_kindergarten.html。这种做法在英文网站很流行,直接把标题作为连接就行了。中文网站实现比较困难。多数还是使用数字的。这 种做法主要针对Google,在目前的搜索引擎中,例如百度,MSN,Yahoo,没有谁比Google更重视url。
 
  动态URL静态化 有两种办法,第一是使用Web服务器的,第二是编程实现。编程实现思路比较简单,这里暂时不多说。我们的网站 www.childhood.net.cn由于使用的是一个小型的虚拟主机,所以不支持地址转化,就只有使用php编程实现。当然,多数的程序已经包括了 这部分,不需要自己写程序了。我们使用的bo-blog也已经包括了编程动态URL静态化,尽管还不是很完全。
 
  基于Web服务器的动态 URL静态化就简单的多。当然,这里面包括两个部分,第一是配置Web服务器。基本上,大家使用虚拟主机的比较多,不可能自己配置,提供商提供的空间支持 动态URL静态化就可以使用,不支持基本上也没有什么办法。对于自己架构服务器的人来说,这本身小才一碟,不许多说。所以,这里主要说如何进行转换。
 
  首先,在服务器的根目录(例如public_html)建立一个文件名为.htaccess的文件。这个文件内容基本如下:
 
  RewriteEngine on
 
  RewriteBase /
 
  RewriteRule ^post/([0-9]+).htm read.php?1
 
  RewriteRule ^post/([0-9]+)_([0-9]+).htm read.php?1&page=2
 
  RewriteRule ^post/([0-9]+)_([0-9]+)_([0-9]+).htm read.php?1&page=2∂=3
 
 
  看懂了吧?如果懂正则表达式的人,马上明白怎么回事了。不懂得也没有关系,下面是一个常用正则表达式的列表,根据例子,稍微修改,就可以做到了。基本上,针对通常的连接转移,应该都可以很容易实现的。
 
  一个小技巧
 
  引用
 
  正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。
 
  匹配中文字符的正则表达式: [/u4e00-/u9fa5]
 
  评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
 
  匹配双字节字符(包括汉字在内):[^/x00-/xff]
 
  评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
 
  匹配空白行的正则表达式:/n/s*/r
 
  评注:可以用来删除空白行
 
  匹配HTML标记的正则表达式:<(/S*?)[^>]*>.*?|<.*? />
 
  评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力
 
  匹配首尾空白字符的正则表达式:^/s*|/s*
 
  评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
 
  匹配Email地址的正则表达式:/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*
 
  评注:表单验证时很实用
 
  匹配网址URL的正则表达式:[a-zA-z]+://[^/s]*
 
  评注:网上流传的版本功能很有限,上面这个基本可以满足需求
 
  匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}
 
  评注:表单验证时很实用
 
  匹配国内电话号码:/d{3}-/d{8}|/d{4}-/d{7}
 
  评注:匹配形式如 0511-4405222 或 021-87888822
 
  匹配腾讯QQ号:[1-9][0-9]{4,}
 
  评注:腾讯QQ号从10000开始
 
  匹配中国邮政编码:[1-9]/d{5}(?!/d)
 
  评注:中国邮政编码为6位数字
 
  匹配身份证:/d{15}|/d{18}
 
  评注:中国的身份证为15位或18位
 
  匹配ip地址:/d+/./d+/./d+/./d+
 
  评注:提取ip地址时有用
 
  匹配特定数字:
 
  ^[1-9]/d*    //匹配正整数
 
  ^-[1-9]/d*   //匹配负整数
 
  ^-?[1-9]/d*   //匹配整数
 
  ^[1-9]/d*|0  //匹配非负整数(正整数 + 0)
 
  ^-[1-9]/d*|0   //匹配非正整数(负整数 + 0)
 
  ^[1-9]/d*/./d*|0/./d*[1-9]/d*   //匹配正浮点数
 
  ^-([1-9]/d*/./d*|0/./d*[1-9]/d*)  //匹配负浮点数
 
  ^-?([1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0)  //匹配浮点数
 
  ^[1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0   //匹配非负浮点数(正浮点数 + 0)
 
  ^(-([1-9]/d*/./d*|0/./d*[1-9]/d*))|0?/.0+|0  //匹配非正浮点数(负浮点数 + 0)
 
  评注:处理大量数据时有用,具体应用时注意修正
 
  匹配特定字符串:
 
  ^[A-Za-z]+  //匹配由26个英文字母组成的字符串
 
  ^[A-Z]+  //匹配由26个英文字母的大写组成的字符串
 
  ^[a-z]+  //匹配由26个英文字母的小写组成的字符串
 
  ^[A-Za-z0-9]+  //匹配由数字和26个英文字母组成的字符串
 
  ^/w+  //匹配由数字、26个英文字母或者下划线组成的字符串
 
  评注:最基本也是最常用的一些表达式。
 

(编辑:财气旺网 - 海宁网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!