ASP 取得网址、截取字符串(含代码) 200
小弟对ASP一知半解,我想做的操作是这样的:取得上一页网址,比如说:http://www.xxx.com/article.asp?id=1003然后取得article.a...
小弟对ASP一知半解,我想做的操作是这样的:取得上一页网址,比如说:http://www.xxx.com/article.asp?id=1003
然后取得
article.asp?id=1003(这一段的长度并不是固定的)
要如何去做?
下面是我写的,代码肯定不对:
1.reUrl是不是应该指定类型?
2.left(str,4)只能取得固定的,那么非固定的要怎么来?
<% reUrl=request.servervariables ("http_referer") response.Write(reUrl) response.Write(left(request.servervariables ("http_referer"),4))
%>
其实简单的来讲,是这样的:
我有一个网站因为换了新域名,访问旧域名自然404错误。而我已经把404页面指定了,我现在想做的就的是,新网址 + 404页截取的字符串,组成新网址跳转。
貌似这个方法可以取到:
Request.servervariables("QUERY_STRING")
现在显示是这个:
404;http://www.xxx.com:80/article.asp?id=1003
现在我只想得到article.asp?id=1003这个怎么得?
再+50分了,求解! 展开
然后取得
article.asp?id=1003(这一段的长度并不是固定的)
要如何去做?
下面是我写的,代码肯定不对:
1.reUrl是不是应该指定类型?
2.left(str,4)只能取得固定的,那么非固定的要怎么来?
<% reUrl=request.servervariables ("http_referer") response.Write(reUrl) response.Write(left(request.servervariables ("http_referer"),4))
%>
其实简单的来讲,是这样的:
我有一个网站因为换了新域名,访问旧域名自然404错误。而我已经把404页面指定了,我现在想做的就的是,新网址 + 404页截取的字符串,组成新网址跳转。
貌似这个方法可以取到:
Request.servervariables("QUERY_STRING")
现在显示是这个:
404;http://www.xxx.com:80/article.asp?id=1003
现在我只想得到article.asp?id=1003这个怎么得?
再+50分了,求解! 展开
9个回答
展开全部
可以用正则表达式来做
<%
dim url,path
'url为上一页地址
'path为要获取的字符串,一定要先声明变量
Url=request.servervariables ("http_referer")
sub getPage(url)
set reg=new regexp
reg.Pattern=".+/"
set route=reg.Execute(url)
route=route.item(0).value
'这样就会获得从"http"(url开始处)到最后一个"/"
'比如'http://zhidao.baidu.com/question/53962926.html
'会获取到http://zhidao.baidu.com/question/
'然后获取route长度
route_length=len(route)
最后从route_length处截取字符串
path=mid(url,route_length)
end sub
'然后调用子函数
getpage url
%>
完美解决,我就是用它做的搜索引擎
还有什么不懂的可以留言.
<%
dim url,path
'url为上一页地址
'path为要获取的字符串,一定要先声明变量
Url=request.servervariables ("http_referer")
sub getPage(url)
set reg=new regexp
reg.Pattern=".+/"
set route=reg.Execute(url)
route=route.item(0).value
'这样就会获得从"http"(url开始处)到最后一个"/"
'比如'http://zhidao.baidu.com/question/53962926.html
'会获取到http://zhidao.baidu.com/question/
'然后获取route长度
route_length=len(route)
最后从route_length处截取字符串
path=mid(url,route_length)
end sub
'然后调用子函数
getpage url
%>
完美解决,我就是用它做的搜索引擎
还有什么不懂的可以留言.
展开全部
能想到的方法有2个
1是你跳过页面 直接分析日志里的东西 就能达到你的目的
2是做一个出错页面 把404的错误指向这个页面
然后皮之不存,毛将焉附。页面都没有 没法谈程序吧。
找到最后一个/截取其后字段 如果说有问题可能就是传值后面也带/概率很小 不放心可以做一个检测和替换
<%
url=Request.ServerVariables("HTTP_REFERER")
If InStr(url,"/")<=0 Then
response.write "网址错误"
response.end
End if
arr=Split(url,"/") '用/分割
n=ubound(arr) '求得最后一个/
response.write arr(n) '输出
%>
1是你跳过页面 直接分析日志里的东西 就能达到你的目的
2是做一个出错页面 把404的错误指向这个页面
然后皮之不存,毛将焉附。页面都没有 没法谈程序吧。
找到最后一个/截取其后字段 如果说有问题可能就是传值后面也带/概率很小 不放心可以做一个检测和替换
<%
url=Request.ServerVariables("HTTP_REFERER")
If InStr(url,"/")<=0 Then
response.write "网址错误"
response.end
End if
arr=Split(url,"/") '用/分割
n=ubound(arr) '求得最后一个/
response.write arr(n) '输出
%>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你想域名转向,你知道IIS或其它web服务器的重定向功能吗?
使用web服务器重定向有两个好处:
1.绝对的SEO友好,搜索引擎不会删除已经在老域名下的收录网页。
2.减轻服务器的负担,这点是然后的,要是使用404中的网页重定向会至少执行两个asp网页.
3.也许不是最重要的吧,可以让用户更快的访问,而不是等到得到错误404后再转向。
以上只是我个人对解决你的问题的不同看法,要是通过404写代码,楼上的给出很好的答案。
如果你决定采用我提出的方法请发百度消息给我,我会尽我所知,写出IIS或其它web服务器的重定向的方法的
对回答的内容有问题,或认为不妥,百度消息我。
(在消息的内容里加上问题的网址哦)
使用web服务器重定向有两个好处:
1.绝对的SEO友好,搜索引擎不会删除已经在老域名下的收录网页。
2.减轻服务器的负担,这点是然后的,要是使用404中的网页重定向会至少执行两个asp网页.
3.也许不是最重要的吧,可以让用户更快的访问,而不是等到得到错误404后再转向。
以上只是我个人对解决你的问题的不同看法,要是通过404写代码,楼上的给出很好的答案。
如果你决定采用我提出的方法请发百度消息给我,我会尽我所知,写出IIS或其它web服务器的重定向的方法的
对回答的内容有问题,或认为不妥,百度消息我。
(在消息的内容里加上问题的网址哦)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
On Error Resume Next
Dim strTemp
If LCase(Request.ServerVariables("HTTPS")) = "off" Then
strTemp = "http://"
Else
strTemp = "https://"
End If
strTemp = strTemp & Request.ServerVariables("SERVER_NAME")
If Request.ServerVariables("SERVER_PORT") <> 80 Then strTemp = strTemp & ":" & Request.ServerVariables("SERVER_PORT")
strTemp = strTemp & Request.ServerVariables("URL")
If Trim(Request.QueryString) <> "" Then strTemp = strTemp & "?" & Trim(Request.QueryString)
strTemp = LCase(strTemp)
Dim strTemp
If LCase(Request.ServerVariables("HTTPS")) = "off" Then
strTemp = "http://"
Else
strTemp = "https://"
End If
strTemp = strTemp & Request.ServerVariables("SERVER_NAME")
If Request.ServerVariables("SERVER_PORT") <> 80 Then strTemp = strTemp & ":" & Request.ServerVariables("SERVER_PORT")
strTemp = strTemp & Request.ServerVariables("URL")
If Trim(Request.QueryString) <> "" Then strTemp = strTemp & "?" & Trim(Request.QueryString)
strTemp = LCase(strTemp)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
三楼的可以,但好像复杂了点。
直接点可以是
path=Mid(url,InStrRev(url,"\")+1)
直接点可以是
path=Mid(url,InStrRev(url,"\")+1)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询