307 重定向(通常称为 HTTP 307 状态代码)会临时自动将网站访问者从一个 URL 转移到另一个 URL,同时保持 HTTP 请求方法不变,这对于某些类型的页面非常重要。例如,假设您正在重新设计网站的登录页面。并且您希望在重新设计期间将用户从“yoursite.com/login/”临时重定向到“yoursite.com/login-temp/”。307 重定向可以提供帮助。尝试访问“yoursite.com/login/”的用户将被重定向到您的临时登录页面。
3xx 状态代码如何工作?
3xx 状态代码(307 重定向只是其中一种类型)会告诉 Web 浏览器将流量从初始 URL 转移到其他 URL。当有人尝试访问您临时重定向的网页时,他们的浏览器会向您网站的服务器(托管和交付 Web 内容的系统)发送请求。服务器以 3xx HTTP 状态代码进行响应,该代码指示所请求页面或操作的状态。该状态代码会告诉浏览器下一步该去哪里以及如何处理重定向。
307、302 和 303 重定向有什么区别?
307、302 和 303 重定向都是临时重定向,但它们在如何以及是否维护 HTTP 请求类型方面有所不同。这主要适用于浏览器向服务器发送的两种类型的请求:
-GET:从服务器检索数据时
-POST:将数据发送到服务器时(例如通过表单提交)
了解 GET 和 POST 请求之间的区别有助于您理解这些重定向之间的区别:
-302 重定向:302 重定向是一种临时重定向,可能会将 POST 请求更改为 GET 请求。当您需要将流量临时定向到新位置并且请求方法是否更改无关紧要时,您可以使用它。例如,如果您正在进行临时促销,并希望在促销期间将用户从主产品页面重定向到该限时页面。
-303 重定向:303 重定向是一种临时重定向,它会将所有请求更改为 GET 请求,通常用于在用户执行提交表单等操作后将其发送到新页面。例如,如果用户填写表单以下载您网站上的资源,您可以使用 303 重定向在提交处理后将他们发送到感谢页面。这可以避免重复提交。
-307 重定向:307 HTTP 代码是一种临时重定向,它保留原始请求方法 - POST 请求仍然是 POST 请求。维护请求方法有助于保护数据、避免数据丢失等。例如,您可以使用 307 重定向将用户发送到包含用户提交的部分相同信息的订单确认页面。
307 临时重定向与 307 内部重定向有什么区别?
虽然 307 临时重定向是一种将用户临时发送到与请求页面不同的页面的方法,但 307 内部重定向(这是一个非正式术语,不是真正的重定向)是一种自动将用户发送到网站安全版本的方法。当有人访问您的网站时,他们的浏览器和您的服务器之间的数据传输可以通过以下方式进行:
-HTTP:纯文本通信协议
-HTTP 安全 (HTTPS):更安全的加密通信协议
如果您的网站使用 HTTP 严格传输安全 (HSTS)(一种指示浏览器始终使用 HTTPS 而不是 HTTP 的安全功能),则用户将始终访问您网站的安全版本。Chrome 的开发人员工具将此显示为“307 内部重定向”。
307 重定向如何影响 SEO?
正确的 307 重定向通常对您网站的 SEO 的影响很小,因为它:
-不传递链接权益:由于 307 重定向是临时的,搜索引擎希望原始 URL 将来可以再次访问。因此,链接权益通常不会转移。
-不更新搜索结果:搜索引擎通常会在看到临时重定向时继续索引原始 URL。这意味着如果原始页面有排名,它将继续显示在临时页面的位置。
话虽如此,如果长期使用 307 重定向,可能会给搜索引擎造成混乱。这可能会对您的排名产生负面影响。
何时使用 307 重定向以及何时避免使用 307 重定向?
307 重定向用于:
-需要维护 HTTP 请求方法的临时重定向:当您需要确保 POST 请求不会更改为 GET 请求时,使用 307 重定向是必不可少的
-其他临时需求:如果您正在更新网站上的页面或运行 A/B 测试(测试两种变体以查看哪种效果更好),则可以使用 307 重定向。虽然 302 重定向在这些情况下更常见。
避免 307 重定向用于:
-批量重定向:如果您正在实施大量临时重定向,则对每个页面使用单独的 307 重定向效率低下,并且可能会减慢您网站的加载时间。相反,使用通配符或基于模式的重定向根据规则重定向多个 URL。
-永久 URL 更改:如果您已将页面永久移动到新 URL,则 307 临时重定向是不合适的。相反,您应该使用 301 永久重定向来向搜索引擎发出更改信号。
如何设置 307 重定向
设置 307 重定向的方式取决于您的网站平台(例如 WordPress、Joomla 或定制)、您的技术专长以及临时重定向的具体目标。以下是四种最常用的方法:
1. 编辑 .htaccess 文件
.htaccess 文件是一个配置文件,它指示您的服务器(假设您使用 Apache)如何响应各种情况,包括重定向。您可以通过修改此文件来实现 307 重定向。登录到您网站的托管帐户,转到您的文件管理器,然后导航到根目录(您网站的主文件夹)。保存文件。并测试重定向是否有效。
2. 尝试 PHP 重定向
使用 PHP 标头是执行服务器端重定向的另一种方法。要使用 PHP 设置 307 重定向,请使用“header()”函数将位置标头发送到浏览器并指示其重定向到新 URL。打开与要重定向的页面相对应的 PHP 文件。在顶部,在任何其他内容之前插入以下内容:
<?php
header("Location: /new-url/", true, 307);
exit;
?>
将“/new-url/”替换为您想要的目的地(它可以是相对 URL,如我们所展示的)并保存文件。通过访问原始页面来测试重定向。
3. 使用插件
如果您无法或不想访问服务器文件,使用插件是实现 307 重定向的有效方法。以下是如何在 WordPress 上进行重定向:下载重定向插件,将其上传到您的 WordPress 网站并激活它。然后前往“工具”>“重定向”打开插件。现在,通过单击齿轮图标展开所有输入区域来输入您的 307 重定向规则。
4. 使用 JavaScript 重定向
如果您无法修改服务器文件,另一个选项是使用 JavaScript 添加客户端重定向。但在 JavaScript 中设置重定向并不像服务器端方法那样对 SEO 友好。因为重定向发生在页面开始加载后,这可能会导致延迟。而且并非所有搜索引擎都执行 JavaScript 或始终执行 JavaScript。找到您要重定向的页面的 HTML 文件。在 HTML 文件的 <head> 部分中,插入以下脚本:
<script type="text/javascript">
window.location.replace("/newpath/");
</script>
将“/newpath/”替换为您所需目标的相对 URL。将更改保存到 HTML 文件。然后通过访问原始页面来测试重定向。
307 重定向的最佳实践
处理 307 重定向时需要考虑很多因素。遵循以下最佳实践可确保获得最佳结果:
-定期测试重定向:访问旧 URL 以确认其正确重定向到更新后的页面
-监控用户行为:使用分析工具跟踪重定向页面上的用户交互。跳出率增加等问题可能表明用户不满意,从而需要更好的替代方案。
-谨慎使用重定向:避免过多的 307 重定向 - 它们会降低您网站的速度
-跟踪重定向:保留活动重定向的记录,以便于故障排除和将来参考
-避免重定向链和循环:重定向链是指浏览器在到达最终目的地之前启动多个重定向。当两个 URL 相互重定向时,就会发生循环。这两种情况都会减慢页面的加载时间,并导致用户体验不佳。
因此,请确保跟踪您实施的任何 307 重定向。当您不再需要它们时,请将其删除。
写在最后
现在您了解了什么是 307 重定向、如何实施重定向以及如何修复相关问题,是时候开始工作了。