因为网站要换域名,所以做了 301重定向,开始能正常从旧域名转到新域名,但约 20 天后,也不知道是什么原因无故出了问题:用 ie 访问旧域名出现 Path /eurl.axd was not found 错误,用 Firefox 浏览器访问能正常转到新域名,但在新域名后自动加一个参数,这点对新域名接纳权重很不好,因为搜索引擎认为网址不同(包括参数不同),网页就不同;这就导致把旧域名的权重传递给新域名带参数的 url,而这个参数实际不是网页的参数,据说是 .net4.0 的扩展参数;而用户访问不带这个参数,这就会导致权重分散,再说旧域名也会过期,所以要把多余的参数去掉,仅把旧域名的权重传递给新域名。
最终禁用了 .net 对 url 的扩展功能,才解决了网址出现Path /eurl.axd was not found错误,恢复了正常。下面先介绍如何关.net 对 url 的扩展功能,再分享一些注意事项,避免被蒙蔽。
1、“开始”菜单 → 运行(或按 Win徽标 + R) → 输入 regedit → 回车打开“注册表编辑器”。
2、依次展开 [HKEY_LOCAL_MACHINESOFTWAREMicrosoftASP.NET.0.30319.0](Windows server 2019 及以上系统,把 HKEY_LOCAL_MACHINESOFTWAREMicrosoftASP.NET.0.30319.0 复制到地址栏,按回车)。
3、在右边窗口右键,选择 “DWORD 值”(64位系统选择“DWORD(32-位)值”),如图1所示:
图1
4、名称输入 EnableExtensionlessUrls,建好后默认值为0,保持这个值就可以了,如图2所示:
图2
0表示关闭 .net4.0 对 url 的扩展功能,1为开启。
5、重新启动 iis 就会生效,可以在“命令提示符cmd”运行 IISRESET 重启 iis。
如果没解决 Path /eurl.axd was not found错误前用浏览器(包括 ie、火狐、谷歌Chrome等)访问了旧域名,解决问题后一定要注销或重启系统,否则还会出现之前的错,可能是缓存原因。