解决域名解析隐性URL跳转网址双斜杠问题

nZone 2023年8月20日更新于6月前 共707字 13行代码 预计4分钟 评论 147
阿里云折扣】服务器活动对比【腾讯云秒杀

昨天无意间中发现,本站内页301跳转出现双斜杠的问题,而首页是没有问题。昨晚本想咨询下人工客服,后面太晚了,还是先自己研究下。

DNS双斜杠问题

双斜杠去重规则

为了解决这一问题,我首先尝试了在服务器的 web.config 文件中添加了如下代码:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="RemoveDoubleSlashes" stopProcessing="true">
          <match url="^(.*)//+(.*)" />
          <action type="Redirect" url="{R:1}/{R:2}" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

但通过工具检测,居然没有生效,看来应该是域名解析问题。域名解析服务本身是不支持https方式跳转,但可以添加显/隐性URL记录的方式,变相实现http跳转到https,优点是优先级高,理论上速度更快。

具体是把非www的“@”记录做显性URL跳转到:https://www.nzonex.com/,这后面有个“/”,这是正确的,但内页就变成类似:https://www.nzonex.com//double-slashes.html,目录结构是这样:https://www.nzonex.com//category/game/,域名后面有两个斜杆“//”,后面目录则没有。

看一些大站,主页尾部都是带“/”,也没有双斜杆的问题。如果把后面的这个斜杆“/”删掉,那内页也就正常了。

虽然双斜杆访问正常,搜索引擎也会自动处理,会将多个连续的斜杠合并成一个,但对用户体验不太好,对搜索引擎的理解可能产生一些影响。所以还是有必要去除。

早上咨询客服,没想到技术是小姐姐,还打电话给我,确认显性URL是会出现双斜杠问题。

早上那时双斜杠会自动去除,现在却不会,可能因为多次修改解析,还有缓存和cdn的影响。

另外还发现内页的http访问不了,无法访问“http://www.nzonex.com/double-slashes.html”,但可以访问“nzonex.com/double-slashes.html”。

如果一定要用显性URL的方式,可以妥协下,把非www的“@”记录做显性URL跳转到:https://www.nzonex.com,注意这后面不要加“/”,这样比较简单的解决。

如果不想去除斜杆,只能弃用,用服务器端设置“web.config”或“.htaccess”文件,来实现301跳转。

对于因为使用域名解析隐性URL方式,导致跳转网址出现双斜杠问题,想到另外一个方向是可以用cdn调整,有空可以尝试一下。

weinxin
公众号
闹着玩下网
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: