这个应该很容易......
我是否需要明确告诉PHP我要进行301重定向?像这样......
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.example.com/");
?>
通常情况下,我会先放弃第一个陈述,然后再做...
<?php
header("Location: http://www.example.com/");
?>
第二个例子实际上是302重定向吗?
答案 0 :(得分:6)
是
第二个特例是“Location:”标题。它不仅将此标头发送回浏览器,而且还向浏览器返回REDIRECT(302)状态代码,除非已经设置了201或3xx状态代码。
最可能的原因是302 Found
是非指定用途的重定向。您可以使用四个3xx重定向标头。
301 Moved Permanently
是永久重定向,例如用于保持与旧URL的兼容性。因此,许多浏览器将缓存重定向位置,并且不会再次检查。303 See Other
是重定向,例如对于后重定向 - 获取操作 - 请注意,它仅定义为HTTP / 1.1 307 Temporary Redirect
的意思是“是的,它通常在这里,但现在,资源在其他地方” - 这可能不是你想要的意思:你总是想在这一点上重定向。再次,在HTTP / 1.1 302 Found
是一个未指定用途的重定向 - 在上述不适用时使用,或者在需要HTTP / 1.0兼容性时使用(2011年仍然是一个问题?);因此,它被用作默认值。