Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redirect 非SEO反欺骗外部链接重定向:状态代码?_Redirect_Semantic Web_Http Status Codes_Screen Readers - Fatal编程技术网

Redirect 非SEO反欺骗外部链接重定向:状态代码?

Redirect 非SEO反欺骗外部链接重定向:状态代码?,redirect,semantic-web,http-status-codes,screen-readers,Redirect,Semantic Web,Http Status Codes,Screen Readers,我已经阅读了一些关于不同HTTP重定向状态代码优点的文档,但是这些都是以SEO为中心的。我现在遇到了一个问题,搜索引擎没有考虑到这一点,因为所讨论的网站部分不可公开查看 然而,我们确实希望我们的网站尽可能准确/有助于元数据,尤其是出于可访问性的原因 现在,我们的应用程序获取第三方提供的外部链接,并通过带有免责声明的反欺骗页面将其路由。由于这个重定向器页面也可以通过Ajax调用有效地嵌入到某些星座中,因此我们还希望从referer中删除任何查询参数(出于隐私目的;目标站点没有必要找出用户之前在哪个

我已经阅读了一些关于不同HTTP重定向状态代码优点的文档,但是这些都是以SEO为中心的。我现在遇到了一个问题,搜索引擎没有考虑到这一点,因为所讨论的网站部分不可公开查看

然而,我们确实希望我们的网站尽可能准确/有助于元数据,尤其是出于可访问性的原因

现在,我们的应用程序获取第三方提供的外部链接,并通过带有免责声明的反欺骗页面将其路由。由于这个重定向器页面也可以通过Ajax调用有效地嵌入到某些星座中,因此我们还希望从referer中删除任何查询参数(出于隐私目的;目标站点没有必要找出用户之前在哪个内部页面上)

为此,确认按钮触发服务器端脚本,该脚本反过来重定向(而不仅仅是为用户打开页面)

至于为什么我们的反欺骗免责声明页面最终会触发重定向

问题是:

我使用的状态码是否有效地起到了作用?非典型浏览器(如屏幕阅读器)是否在意?如果是这样,这种重定向的最佳实践是什么?最具语义的声音,如果你愿意的话?他们在我看来都有不同程度的虚伪

我想到的是302,但由于尝试将页面添加到书签(它受crsf令牌保护)没有任何意义,所以301可能也没有什么害处,是吗?因此,我想知道我是否有理由选择其中一个而不是另一个。

嗯。301听起来不错(强调我的):

已为请求的资源分配了一个新的永久URI,将来对此资源的任何引用都应使用返回的URI之一。具有链接编辑功能的客户端应尽可能自动将对请求URI的引用重新链接到服务器返回的一个或多个新引用

302不符合我的意见:

请求的资源临时驻留在不同的URI下

然而,我最喜欢的是
303参见其他

对请求的响应可以在不同的URI下找到,并且应该使用该资源上的GET方法进行检索。此方法主要用于允许后激活脚本的输出将用户代理重定向到所选资源。新URI不是最初请求的资源的替代引用


但这可能是非常罕见的(我从未见过它在野外使用过),一些客户可能不理解它-这将使您对最大兼容性的渴望变得毫无意义。301可能是最接近的选择。

既然你提到了看其他的“听起来很棒”。我会调查一下兼容性,看看能不能解决这个问题。关于301,我对此持怀疑态度,因为如果你从字面上解释它,你实际上会使中间页的必要性失效。诚然,没有哪个浏览器那么吝啬,所以这可能没关系,但也许你能理解我的犹豫只是一个快速的跟进,看起来我可以用303。所以,非常感谢!303在语义Web上广泛用于内容协商,这是W3C标记httpRange-14解析的结果。通常,设计良好的客户端在收到303响应以获取实际资源时会自动执行GET,例如.Net framework会自动解决这个问题,我对此也感兴趣