我希望将 301 重定向到应用程序以获取查询字符串参数的特定值。
例如:
http://www.example.com/page?id=1
→ 重定向到新页面http://www.example.com/page?id=2
→ 呈现正常响应
浏览器如何缓存重定向?
具体来说,在访问第一个 URL 后,某些浏览器会开始为 301 重定向id=2
,还是基于完整 URL 的重定向?
我希望将 301 重定向到应用程序以获取查询字符串参数的特定值。
例如:
http://www.example.com/page?id=1
→ 重定向到新页面http://www.example.com/page?id=2
→ 呈现正常响应浏览器如何缓存重定向?
具体来说,在访问第一个 URL 后,某些浏览器会开始为 301 重定向id=2
,还是基于完整 URL 的重定向?
浏览器肯定会缓存 301 重定向,因为它是永久重定向。基本上,您是在告诉浏览器永远不要查看原始 URL 并自动转到第二个 URL。任何搜索引擎都会发生同样的事情。如果您打算再次使用该原始 URL,请确保使用临时重定向。
具体来说,访问第一个 URL 后,某些浏览器会开始为 id=2 执行 301 重定向,还是基于完整 URL 的重定向?
不,浏览器应该完整地看到每个 URI,因此page?id=1
是不同的 URL Page1?Id=2
,301 重定向仅适用于第一个 url。
请记住,浏览器正在执行重定向并根据其对 HTTP 规范的解释实现自己的规则。如果浏览器中有任何错误,您可能会得到不可预知的结果,但简短的回答是它们是对不同 url 的不同请求,并且每个请求都有自己的 HTTP 状态代码,因此它们可以被视为单独的页面。