类似于a year ago提出的问题,但他们的解决方案对我不起作用。我有一堆缩短的网址,可以让我的客户通过重定向更轻松地访问产品页面(元刷新)。例如domain.com/1234将客户端重定向到domain.com/category/product-1234。
多年来,由于我们拥有的产品数量和我们开展的广告系列,我的公司积累了大量重定向。我有一份所有现有重定向的列表,我想创建一个等效的最终网址列表。
I Frankensteined下面的函数,但当状态为200时,它只返回重定向URL。我希望它返回缩短的URL重定向客户端的最终URL。
即。 FinalURL(“domain.com/1234”)返回“”domain.com/1234“,当我希望它返回”domain.com/category/product-1234“
我需要在IE中打开设置吗?我启用了“跨域访问数据源”,我是否错过了什么?
任何帮助?
Public Function FinalURL(sURL As String) As String
On Error Resume Next
Set oHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
If oHTTP Is Nothing Then
Set oHTTP = CreateObject("WinHttp.WinHttpRequest.5")
End If
Err.Clear
On Error GoTo 0
oHTTP.Option(WinHttpRequestOption_EnableRedirects) = True
On Error GoTo Oops
With oHTTP
.Open "GET", sURL
.Send
Select Case .Status
Case 200: FinalURL = .Option(1)
Case 403: FinalURL = "Forbidden"
Case 404: FinalURL = "Not Found"
Case 410: FinalURL = "Gone"
Case 503: FinalURL = "Service Unavailable"
Case Else: FinalURL = False
End Select
Exit Function
End With
Oops:
FinalURL = False
End Function
如果有帮助,重定向的编码如下:
<html>
<head>
<meta http-equiv="refresh" content="0; url=LinkToTrackingURLThatPointsToNewPage">
</head>
</html>