什么是307重定向?

307重定向(通常称为HTTP307状态代码)暂时自动将网站访问者从一个URL转移到另一个URL,同时保持HTTP请求方法—这对于某些类型的页面很重要。

例如,假设您正在重新设计网站的登录页面。 你想暂时重定向用户从"yoursite.com/login/"至"yoursite.com/login-temp/"在重新设计期间。

307重定向可以提供帮助。 和试图访问的用户"yoursite.com/login/"将被重定向到您的临时登录页面。

3xx状态代码如何工作?

3xx状态代码(307重定向只是一种类型)告诉web浏览器将流量从初始URL转移到不同的URL。

当有人试图访问您临时重定向的网页时,他们的浏览器会向您网站的服务器(托管和交付web内容的系统)发送请求。

服务器以3xx响应HTTP状态代码表示请求的页面或操作的状态。 状态代码告诉浏览器下一步要去哪里以及如何处理重定向。

An illustration showing how servers respond to 3xx HTTP状态代码s

307vs.302vs.303重定向

307、302和303重定向都是临时重定向,但它们在如何以及是否维护HTTP请求类型方面有所不同。

这主要适用于浏览器向服务器发送的两种类型的请求:

  • 获取:从服务器检索数据时
  • 职位:当数据被发送到服务器(如通过表单提交)

了解获取和职位请求之间的区别有助于您了解这些重定向之间的区别:

302重定向

A 302重定向是一个临时重定向,可能会将职位请求更改为获取请求。

当您需要临时将流量引导到新位置时,您可以使用它,如果请求方法更改,则无关紧要。 例如,如果您正在运行临时销售,并且希望在销售运行时将用户从主产品页面重定向到该限时页面。

303重定向

303重定向是将所有请求更改为获取请求的临时重定向,通常用于在用户执行提交表单等操作后将用户发送到新页面时。

例如,如果用户完成表单以下载您网站上的资源,则可以在提交处理后使用303重定向将其发送到感谢页面。 从而可以避免重复提交。

307重定向

307HTTP代码是维护原始请求方法的临时重定向-职位请求仍然是职位请求。

维护请求方法有助于保护数据,避免数据丢失等。

例如,您可以使用307重定向将用户发送到包含用户提交的一些相同信息的订单确认页面。

307临时重定向与307内部重定向

虽然307临时重定向是一种将用户临时发送到与请求页面不同的页面的方法,但307内部重定向(这是一个非正式术语,不是真正的重定向)是一种自动将用户发送到网站安全版本的方法。

当有人访问您的网站时,他们的浏览器和您的服务器之间的数据传输可以通过:

  • HTTP:纯文本通信协议
  • HTTP安全(HTTPS):更安全的加密通信协议
Illustration showing the difference between HTTP and HTTPS

如果您的网站使用HTTP严格传输安全(HSTS)—一种指示浏览器始终使用HTTPS而不是HTTP的安全功能-用户将始终最终访问您网站的安全版本。

Chrome的开发人员工具将其显示为"307内部重定向"。”

307重定向如何影响SEO?

适当的307重定向通常对您网站的SEO影响最小,因为它:

  • 没有通过链接公平:由于307重定向是临时的,搜索引擎期望原始URL将来可以再次访问。 因此,链接权益通常不会转让。
  • 不更新搜索结果:当搜索引擎看到临时重定向时,通常会继续索引原始URL。 这意味着如果原始页面正在排名,它将继续显示在临时页面的位置。

也就是说,如果长期使用,307重定向可能会对搜索引擎造成混淆。 这会对你的排名产生负面影响。

何时使用307重定向以及何时避免307重定向

使用307重定向:

  • 需要维护HTTP请求方法的临时重定向:当您需要确保职位请求不会更改为获取请求时,使用307重定向是必不可少的
  • 其他临时需要:如果您正在更新网站上的页面或正在运行A/B测试(测试两个变体以查看哪个性能更好),您可以使用307重定向。 虽然302重定向在这些情况下更常见。

避免307重定向:

  • 批量重定向:如果您正在实施大量临时重定向,则为每个页面使用单独的307重定向可能效率低下,并且可能会减慢您网站的加载时间。 相反,使用通配符或基于模式的重定向根据规则重定向多个Url。
  • 永久URL更改:如果您已将页面永久移动到新URL,则307临时重定向不正确。 相反,您应该使用301永久重定向来向搜索引擎发出更改信号。

如何设置307重定向

您设置307重定向的方式取决于您的网站平台(例如,WordPress,Joomla或自定义构建),您的技术专长以及临时重定向的具体目标。

以下是四种最常见的方法:

1. 编辑。htaccess文件

.htaccess文件是一个配置文件,指示您的服务器(假设您使用Apache)如何响应各种场景,包括重定向。

您可以通过修改此文件来实现307重定向。

登录到您网站的托管帐户,转到您的文件管理器,然后导航到根目录(您网站的主文件夹)。

如果Bluehost是您的网络托管服务提供商,您的根目录可能如下所示:

public_html folder in Bluehost's file manager

找到。根目录内的htaccess文件,并选择它进行编辑。

.htaccess文件 selected and edit button highlighted

现在执行以下操作:

  • 检查写着"RewriteEngine On"的行(请参阅下面的屏幕截图)。 如果它不在那里,请考虑添加它(对于此示例,您并不严格需要它,但添加重写规则是必要的)
  • 在末尾添加以下代码。htaccess文件:
重定向307/旧页。html格式/newpage。html格式

确保更换"/旧页。html格式"使用您重定向的页面的相对URL和"/新页。html格式"与目标页面的相对URL。

Adding the redirect code to the .htaccess文件

保存文件。 并测试重定向是否有效。

2. 尝试PHP重定向

使用PHP标头是执行服务器端重定向的另一种方法。

要使用PHP设置307重定向,请使用"header()"函数向浏览器发送位置标头并指示其重定向到新URL。

打开与要重定向的页面相对应的PHP文件。

在顶部,在任何其他内容之前插入此内容:

标题("位置:/新网址/",true,307);
出口;出口;
?>

替换"/新网址/"与您想要的目的地(它可以是一个相对的URL,如我们所示),并保存文件。 通过访问原始页面来测试重定向。

3. 使用插件

如果您无法或不想访问服务器文件,使用插件是实现307重定向的有效方法。

这是怎么做的WordPress上的重定向:

下载重定向插件,将其上传到您的WordPress网站,并激活它。

然后前往"工具”> “重定向"来打开插件。

Wordpress dashboard with the tools button and 重定向插件 highlighted

现在,通过单击齿轮图标输入您的307重定向规则以展开所有输入区域。

重定向插件 form to set up redirects

4. 使用JavaScript重定向

如果您无法修改服务器文件,另一种选择是使用JavaScript添加客户端重定向。

但是在JavaScript中设置重定向并不像服务器端方法那样对SEO友好。

为啥?

因为重定向发生在页面开始加载后,这可能会导致延迟。 并非所有搜索引擎都执行JavaScript或一致执行JavaScript。

找到要重定向的页面的HTML文件。

在HTML文件的部分,插入以下脚本:

替换"/新路径/"与您想要的目的地的相对URL。

将更改保存到HTML文件。 然后通过访问原始页面来测试重定向。

307重定向的最佳实践

处理307重定向时需要考虑很多因素。 遵循这些最佳实践以确保最佳结果:

  • 定期测试重定向:访问旧URL以确认它正确重定向到更新的页面
  • 监控用户行为:使用分析工具跟踪重定向页面上的用户交互。 跳出率增加等问题可能表明用户不满,促使需要更好的替代方案。
  • 谨慎使用重定向:避免太多的307重定向-他们可以减慢您的网站
  • 跟踪重定向:维护活动重定向的记录,以便于故障排除和将来参考
  • 避免重定向链和循环:重定向链是指浏览器在到达最终目的地之前启动多个重定向。 当两个Url重定向到彼此时,会发生循环。 这两者都可能会减慢页面的加载时间,并创建较差的用户体验。

因此,请确保跟踪您实现的任何307重定向。 当你不再需要它们时,把它们去掉。

您可以使用Semrush的现场审核工具来监视你的网站上的网页与307重定向.

打开该工具,输入您的域,然后单击"开始审核.”

现场审核's search function

审核完成后,找到"已爬网页面"模块,然后单击"重定向"旁边的数字。”

查看所有具有307状态代码的Url,以查看是否有任何是无意的,需要删除。

List of URLs with 307 redirects in 现场审核

要特别查找任何重定向链和循环,请转到"问题"报告,在搜索栏中输入"重定向",并查找"#重定向链和循环问题。”

Redirect issues highlighted in 现场审核

如果您看到此错误,请单击它以查看受影响的页面。 然后采取措施解决这些问题。

如何修复307临时重定向问题

实施307重定向后,您可能会面临问题或配置错误。 以下是一些常见的解决方案:

  • 如果您通过监视服务器日志或通过现场审核,查看您对受影响页面所做的修改并解决您看到的任何错误
  • 如果您的网站具有缓存机制,请确保它们不会缓存过时的重定向
  • 如果您使用CMS或网站平台来管理重定向,请查看有关重定向的文档。 并查看某些插件是否存在已知问题。
  • 如果您面临复杂的重定向循环、链或其他无法解决的情况,请寻求开发人员的帮助

使用307重定向正确的方式

现在您已经了解了什么是307重定向,如何实现重定向以及如何解决相关问题,是时候开始工作了。

使用以下方法审核您的网站现场审核要获得所有重定向的完整报告以进行审核。

根据您的评估,进行相应的更改。

雷切尔 汉德利
Rachel是一名资深内容作家,在内容营销和SEO方面拥有12年以上的经验。她曾在代理机构工作,为各种品牌制定和执行内容战略,并在内部推动SaaS初创公司的有机增长。