动态网站映射静态技术

静态链接:现很多网站都是才的静态页面作为归档,这种归档正是迎合了Google的设计.
URL表现为静态链接:spider也会通过对网页的cookie进行检查,防止隐私内容进入索引,这也是很多网站的内容难被Google索引的原因。
原因很简单:一般情况下,整个互联网上静态网页比动态网页质量要高很多。因此搜索引擎会优先收录静态网页,而在搜索结果中静态网页往往也比相同的内容的动态网页排名要靠前的多。
上图所说的是一个网站地址,也就是一个 URL ! 是一个静态的URL地址!!这个网站是后台动态数据添加的,
先不说他是怎么实现的!我们先来讲讲的生成静态后的好处!

首先我们要知道为什么要生成静态页面的URL效果,目的什么简单就是为了现在很流行的搜索引擎收录Google问题.
对于搜索引擎来讲 新的页源 静态的URL就是好的.静态就是在URL地址中没有?出现过,就会认为是静态的页面.

一个动态的效果的网站,比如 (http://www.google.com/x21net/good.php?nesid=13&sty=3&lan=cn)

他的静态演变是 http://www.google.com/x21net/good.php/nesid-13_sty-3_lan-cn
或者是这样演变 http://www.google.com/x21net/good.php/13-3-cn

也可以是 http://www.google.com/x21net/good-13-3-cn.html

下面让我们看看是怎么样实现的吧!

以下是对用PHP语言开发的网站URL处理参考

假静态真效果的处理办法,这样的处理办法是对虚拟主机很见效.

不需要在服务器上作什么事情,方便快捷,可以到达我们最终的目的.就是看上去不是很满意!!!~

这种方法是通过 PHP_INFO 来处理的!你可以获取到虚拟主机的 REQUEST_URI 这个系统变量是都开的!


$xfilename = basename($_SERVER[SCRIPT_NAME]);
if ($xfilename=="x21net.php") {
if (!empty($_GET[x21net_id])) {
$x21net_id = intval($_GET[x21net_id]);
$pagenum = intval($_GET[pagenum]);
}
if (empty($x21net_id)) {
$nav = $_SERVER["REQUEST_URI"];
$script = $_SERVER["SCRIPT_NAME"];
$nav = ereg_replace("^$script","",urldecode($nav));
$vars = explode("/",$nav);
$x21net_id = intval($vars[1]);
if (!empty($vars[2])) {
$pagenum = intval($vars[2]);
}
}
}

变量名称 $xfilename 是用来获取到 当前的文件名称
x21net.php 是你要执行的文件
$x21net_id 是提交到这个页面的变量 $pagenum 是附属地址

这样的一段代码我们把他放在PHP页面中去 执行一看看效果怎么样!!嘿嘿!不错吧!!

效果就像这样 http://www.XXX.com/x21net.php/114
其原型是这样的 http://www.XXX.com/x21net.php?x21net_id=114

这样的效果也完全可以被搜索引擎所喜欢!
注意:APACHE2中缺省是不允许PATH_INFO的,需要设置 AcceptPathInfo on
    在使用这样的处理URL的同时,最好你还要生成一张好的 SITEMAP 文件.这样就更佳了!


真实的从核心代码中处理办法,同时也需要服务器支持


在你的appce的服务器的 WEBSITE Directory 下面 放上 .htaccess 用来处理你在 URL 地址中所触发的环境映射.
加载了ReWrite模块,这个看看你的Httpd.conf的配置文件之中关于rewrite的模块是否#屏蔽了
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
打开Rewrite
.htaccess 的文件内容.具体的环境映射要你自己去设置了!~:) RewriteEngine On
RewriteRule ^browse-(.*)-(.*)-(.*).html browse.php?cat=$2&pg_which=$3

接下拉,我们来看一下程序要处理的本分:
$mod_rewrite_str_arr = array(' ','-','/','\\',',','#',':',';','\'','"','[',']','{','}','|','`','~','!','@','%','$','^','&','*','=','+');

我先要处理掉包含在 URL 正确表达式中的非其字符.

$sub_name2 = str_replace($mod_rewrite_str_arr,'_',$sub_name);

$sub_url = strtolower("browse-$sub_name2-$sub_id-1.html"); 这里所作的就是对URL表达是进行名称从组.

在 ECHO 出来这个地址.

会发现已经是这样的了  http://www.XXX.com/seeksoft/browse-windows-4-1.html !!
他的原型是 :  http://www.XXX.com/seeksoft/browse.php?cat=4


嘿嘿!~ 就是这么简单呀!真的是没有东西了!!具体数据库提取和URL预组是要看你怎么样来设计了!


以下是对用ASP语言开发的网站URL处理参考

怎么样才能实现将 x21net.asp?news_id=158 这样的链接映射成 x21net/news_158.html,从外面看上去和静态链接一样。
从我个人的角度来讲,如果我是 asp 系统的话,我就会从POST的角度来处理.

<%
dim strUrl,Item_Classid,id,FileName,FilePath,Do_Url,Html_Temp
Html_Temp="<UL>"
For i=1 To 3
Html_Temp = Html_Temp&"<LI>"
Item_Classid = i
FileName = "Index"&Item_Classid&".htm"
FilePath = Server.MapPath("/")&"\"&FileName
Html_Temp = Html_Temp&FilePath&"</LI>"
Do_Url = "http://"
Do_Url = Do_Url&Request.ServerVariables("SERVER_NAME")&"/detail.asp"
Do_Url = Do_Url&"?Item_Classid="&Item_Classid
strUrl = Do_Url
dim objXmlHttp
set objXmlHttp = Server.CreateObject("Microsoft.XMLHTTP")
objXmlHttp.open "GET",strUrl,false
objXmlHttp.send()
Dim binFileData
binFileData = objXmlHttp.responseBody
Dim objAdoStream
set objAdoStream = Server.CreateObject("ADODB.Stream")
objAdoStream.Type = 1
objAdoStream.Open()
objAdoStream.Write(binFileData)
objAdoStream.SaveToFile FilePath,2
objAdoStream.Close()
Next
Html_Temp = Html_Temp&"<UL>"
Response.Write Html_Temp
Response.Write ( "<BR>" )
Response.Write ( "成功生成文件:" )
%>



文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
评论: 0 | 引用: 6 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.