没事问个简单的问题,顺带散分! ( 积分: 100 )

  • 主题发起人 主题发起人 cqwty
  • 开始时间 开始时间
C

cqwty

Unregistered / Unconfirmed
GUEST, unregistred user!
ie的地址栏里面输入域名,比如www.google.com,那么是怎么自动跳转到:
http://www.google.com/intl/zh-CN/
这个地址的呢?我想知道实现的原理。
 
怎么没有人回答呢?
 
这是域名服务器路由选择到最佳路径
 
<!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;>
<html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;>
<head>
<meta http-equiv=&quot;Content-Language&quot; content=&quot;zh-cn&quot;>
<meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot; />
<title>欢迎光临邮局</title>
</head>

<body>
正在登陆欢迎光临邮局<p>请稍候........................<%@LANGUAGE=&quot;VBSCRIPT&quot; CODEPAGE=&quot;65001&quot;%>
<!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;>
<%
select case request.servervariables(&quot;http_host&quot;)
case &quot;mail.sina.cn&quot; '11
Server.Transfer(&quot;/index.htm&quot;)
case &quot;ftp.sina.cn&quot; '12
Server.Transfer(&quot;/ftp.htm&quot;)
case &quot;192.168.0.12&quot; '21
Server.Transfer(&quot;/index.htm&quot;)
case &quot;211.114.70.138&quot; '22
Server.Transfer(&quot;/index.htm&quot;)
end select
%>
</p>
</body>
</html>
那个是域名转向。很容易做的,上面就是段ASP的代码
 
<html>

<head>
<meta http-equiv=&quot;Content-Language&quot; content=&quot;zh-cn&quot;>
<meta name=&quot;GENERATOR&quot; content=&quot;Microsoft FrontPage 6.0&quot;>
<meta name=&quot;ProgId&quot; content=&quot;FrontPage.Editor.Document&quot;>
<meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot;>
<meta HTTP-EQUIV=REFRESH CONTENT=&quot;0;URL=http://mail.sina.cn/webmail&quot;>
<title>欢迎光临邮局</title>
</head>

<body>

<p>页面加载中,请稍候........</p>

</body>

</html>



html的最简单
<meta HTTP-EQUIV=REFRESH CONTENT=&quot;0;URL=http://mail.sina.cn/webmail&quot;>
把指向该主页的页面转向了http://mail.sina.cn/webmail。
上面的asp中的VBS代码会判断客户输入的域名,根据域名进入不同的页面。这个可以将多个域名绑定到同一台WEB服务器。而且可以将不同的域名转向不同的默认页面

google 那个原理是根据cookies和用户的IP地址,如果有cookies,根据cookies存储的设定,如果没有,根据客户IP判断客户位置,然后根据位置选择相应语言的服务器进入。
 
我要的不是asp的代码来跳转,可能我没有把问题描述清楚,重新描述一下:
比如我申请了一个域名:www.test.com,
然后我用iis或者apache来发布网站的时候,这个网站的开始页面是come/default.asp
而这个时候,当我们在ie里面输入www.test.com的时候,那么就会自动的访问到了
www.test.com/come/default.asp,大家明白我的意思吗?
 
那你在设置IIS的默认网站那里添加default.asp,再启用文档页脚,自己写一段代码到文档里边如<meta HTTP-EQUIV=REFRESH CONTENT=&quot;0;URL=http://www.test.com&quot;>
把指向该主页的页面转向了http://www.test.com/come/default.asp
 
好像楼上的各位都没有明白我的意思嘛,我用的是delphi开发工具 ,我要在delphi里面实现,我看了delphi的webbrowser控件可以实现,这个控件的navigate(url)方法可是实现,我现在用一个开放的源代码实现了一部分访问,比如说www.test.com这个,但是得到的结果不是come/default.asp的结果,而是下面的这个结果:
<head><title>Object moved</title></head>
<body><h1>Object Moved</h1>This object may be found <a HREF=&quot;come/default.asp&quot;>here</a>.</body>
那么我怎么才能实现像ie那种,直接就相当于访问
www.test.com/come/default.asp这个呢?
 
比如说我访问google,那么我在我的程序里面输入
www.google.com
则得到的结果是:
<HTML><HEAD><meta http-equiv=&quot;content-type&quot; content=&quot;text/html;charset=utf-8&quot;>
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF=&quot;http://www.google.com/intl/zh-CN/&quot;>here</A>.
</BODY></HTML>
而我们在ie地址栏里面输入www.google.com的时候,则是直接访问了
http://www.google.com/intl/zh-CN/
我是要实现这个功能。各位大侠能明白吗?
 
谢谢楼主,我也学了一招.
 
ie似乎会尝试一些最有可能的协议吧?
另外,如果输入一个不存在的URL,
可以看到ie会尝试许多其它的相关URL。
 
如果就问重定向,最简单的是 <meta http-equiv=&quot;Refresh&quot; content=&quot;3; url=http://www.google.com/intl/zh-CN/&quot;>
如果问为什么定向到中文网站,则是根据选择操作系统来决定该引导到哪个语言版本的网站去,这个也是根据个人喜好可以修改的
 
可以通过访问时的IP地址,检测是那个地区的,然后直接转过去。当然也许有比较好的做法,我只是一种最笨的方法!
 
楼主的意思是,你自己的程序不支持重定向是吧?

我想IE的工作原理应该是自己解析了获得的HTML代码再 重定向的

<A HREF=&quot;http://www.google.com/intl/zh-CN/&quot;>here</A>.
可能是获取到这句或者类似语句后再重定向
 
帮你顶一个,接分
 
楼主的话我还是有点没弄懂,
是不是你并不是要在WEB服务器端实现域名转向功能,
而是要在你的程序的客户端实现获取web服务段转向后的地址的功能?
这个你仍然需要了解域名转向的写法。
Hydra0说的,获得的HTML代码再 重定向
<HTML><HEAD><meta http-equiv=&quot;content-type&quot; content=&quot;text/html;charset=utf-8&quot;>
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF=&quot;http://www.google.com/intl/zh-CN/&quot;>here</A>.
</BODY></HTML>
这个代码应该是你的软件获取转向地址后自动生成。<A HREF=&quot;http://www.google.com/intl/zh-CN/&quot;>here</A>.这个就应该是解析出的地址。
 
用ASP代码response.redirect &quot;login.htm&quot;
login.htm这个是跳转到的页面
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
851
DelphiTeacher的专栏
D
后退
顶部