首页 >> 网络营销词典 >> 网络营销术语及概念 >> URL重写

URL重写 [编辑]


概述
如果通过浏览器进来的URL是“UserProfile.aspx?ID=1”那么它可以被重写成 “UserProfile/1.aspx”,这样的URL,这样的网址可以更好的被网站所阅读,即URL重写。

概述:

      URL重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程。举个例子来说,如果通过浏览器进来的URL是“UsERProfile.aspx?ID=1”那么它可以被重写成 “UsERProfile/1.aspx”,这样的URL,这样的网址可以更好的被网站所阅读。

​多种URL重写规则:

      根据不同的服务器就会有不同的URL重写规则,比如 iis apache nginx 这三种重写方式都是不同的,并非完全一样的。

动态链接静态化概述: 

      这是SEO过程中经常碰到的问题,也是必须解决的问题。因为搜索引擎喜欢静态页面。从Web服务器的角度,这个问题转变为:如何将静态化的文件名称转化成参数。

需要两步来处理 

     1、把网页上带链接的地方,都换上新的静态化链接。搜索引擎和浏览器将通过该链接来发生请求。(有些人做修改不是在网页上,而是进行动态链接向静态链接的转向,这是严重错误的)

     2、在httpd.conf或.htaccess中使用RewriteRule:RewriteRule "^/dir/ ([^./]*) \.html" "/dir/script.cgi?doc=$1" [PT]标记告诉Apache执行后续的所有操作。通过这个功能,使动态页面以静态链接的形式展示给搜索引擎,从而达到URL优化的目的。

URL重写的好处:

功能好处 

      重写URL是非常有用的一个功能,因为它可以让你提高搜索引擎阅读和索引你的网站的能力;而且在你改变了自己的网站结构后,无需要求用户修改他们的书签,无需其他网站修改它们的友情链接;它还可以提高你的网站的安全性;而且通常会让你的网站更加便于使用和更专业。

URL重写式会话跟踪的最低公分母?

     当客户机不接受cookie时,server就使用URL重写作为会话跟踪的基本方式.URL重写,添加了附加数据(会话ID)到请求的URL路径上.

     会话ID必须被编码作为该URL字符串中的路径参数。该参数的名称为jsessionid,

     例如:index.html;jsessionid=1234

URL重写的优点:

      1、缩短url,隐藏实际路径提高安全性 。
      2、易于用户记忆和键入。
      3、易于被搜索引擎收录。

URL重定向:

制作404页面 

      很多时候,我们考虑把无效的URL比如:用户拼错的URL、不存在的URL重定向到别的网页,例如网站的首页、404页面等。

在httpd.conf或.htaccess文件中使用ErrorDocument来捕获404 (找不到文件)错误:ErrorDocument 404 /index.html、DirectoryIndex index.html /path/to/notfound.html本功能会让所有的404错误——每次当某人请求无效的URL 时,都返回URL / index.html 提供的网站首页。

注意事项:

      1、直接指向首页是否是合适的?或者让它指向到一个404页面会更好些?如果在404页面用javasctrip做一个跳转到首页,也是SEO允许的做法。

      2、即使返回有效的文件,仍然会将404 状态码返回给客户端和搜索引擎。这表示搜索引擎机器人来确认网站上的链接时,仍然会得到正确的结果(404状态码)。

保留原链接,创建新的URL:

操作方法 :

      具体操作办法(仅适用于apache网络服务器):

文件位置:apache->conf->httpd.conf

请在httpd.conf中使用Alias指令:Alias /newurl /www/htdocs/oldurl

如:用户访问新的地址/newurl/id34.html 服务器将提供的内容原地址是/www/htdocs/oldurl/id34.html。

注意:Alias只会改变本地URL,如/newurl/id34.html 的/newurl/id34.html 部分,而无法改变URL的主机名称部分若要更改URL的主机名称部分,请使用Redirect或RewriteRule指令。

菜鸟指南:本功能的Alias指令在 httpd.conf中是这一句: #Alias /webpath /full/filesystem/path 去掉前面的#,并做下相应的修改即可。

SEO过程中用到的功能 :

1、当文件移动或文件目录名称发现改变,出于SEO需要,你需要保持旧的URL;

2、网站改版了,网站导航和链接发生变化,为了继续持有原链接带来的流量,你需要保持旧的URL;

3、你希望不同的人用不同URL来链接同一个的内容。(SEO一般不建议这样做)

URL重定一般代码:

myrewritter.cs,代码 

1. 要重写,首先是截获url请求,然后分析当时的url,最后跳转到相应的页面.所以我们第一步是要截获url请求.为此新建一个类库叫URL,在该类库中引用URLRewriter.dll.新建一个类myrewritter.cs,代码如下
namespace URL{public class myrewritter : URLRewriter.BaseModuleRewriter
{protected override void Rewrite(string requestedPath, HttpApplication app)

{if (requestedPath.Contains("news/2011/3/2.html")

app.Context.RewritePath("/news.aspx?id=2&year=2011&month=3");

elseapp.Context.RewritePath("/here.aspx");

      可以看到该类继承了URLRewriter.BaseModuleRewriter,然后在Rewrite方法中加入了我们自己的逻辑.现在,只要当前的url请求是news/2011/3/2.html,我们就会将页面重写到/news.aspxid=2&year=2011&month=3.

      这只是一个简单的例子,实际上对于url的判断,一般是用正则表达式来完成.而页面和页面间的对应关系,可能需要通过查询数据库完成.

web.config代码:

接下来在网站项目中引用这个类库.然后修改下web.config,下面的:
<?xml version="1.0"?>
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<httpModules>
<add type="URL.myrewritter" name="URL" />
</httpModules>
<compilation debug="true" />
<authentication mode="Windows" />
</system.web>
</configuration>

步骤总结 :

       大家可以看到我新加了个httpModules.这个的作用是,如果有url请求,asp/net会先把请求传到你指定的这个类中来.add那一行了,前面的是要接收请求的类,后面的是这个类所在的dll的名字.添加完这一句后,一切就快结束了.由于我们要处理的是.html的页面,所以需要配置下iis.因为默认asp/net的处理引擎不会管.html.我们要做的是用处理asp.ent的那个程序来处理html页面.打开iis.找到你的网站,点右键打开属性.找到主目录(Home Directory),打开配置(Configuration)对话框. 在Application extensions列表里找到.aspx,点击编辑(Edit...),复制Executable框的内容。

参考资料:
扩展阅读:
相关词条:
合作编辑:

网络营销词典内容均由网友提供,仅供参考。如发现词条内容有问题,请发邮件至info # wm23.com。

词条信息

浏览次数:21

编辑次数:0历史版本

创建者: 黄丽伟

最近更新:2015/5/8 16:44:39

词条分类导航

关于网络营销教学网站| 本站动态| 网站地图| 版权声明| 联系作者| 问题和建议|

版权声明:网络营销教学网站所有作品版权均归原作者所有,未经书面许可,严禁任何形式的转载/转贴、出版、篡改、汇编、编译等。