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

双斜杠去重规则
为了解决这一问题,我首先尝试了在服务器的 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调整,有空可以尝试一下。
