
为什么要避免重定向(以及如何避免)
当您的网页包含太多(有时一个就已经够糟糕了)重定向时,它会显著降低您的页面速度。建议您检查您的网站,并删除任何绝对不必要的重定向。
什么是重定向?
重定向是一种自动功能,使得访问一个页面或文件可以到达另一个页面或文件。这意味着用户不会直接连接到它应该去的页面或文件,而是必须先通过另一个连接(或多个连接)才能到达正确的页面或文件。
它们如何减慢我的网站速度?
使用重定向时,用户的浏览器不会直接连接到用户最终要去的目的地。它必须先连接到重定向,然后才能到达最终目的地。这减慢了到达最终目的地的过程,因为用户是间接到达而不是直接到达。
避免所有重定向——除了某些
如果可能的话,在您的网页上根本不要使用任何重定向方法。然而,有时您无法避免它们。一个例子是当今大多数网站使用的301非www到www重定向。这种重定向通常是必要的,至少是因为它告诉Google和其他搜索引擎它们应该将哪个URL(www或非www)作为您域名的默认URL。
重定向的类型
- 301和302重定向——这些都是服务器端重定向,指示页面已永久(301)或临时(302)移动。如果您必须使用重定向,这是最快的重定向类型。这些类型的重定向通常也用于(非)www重定向。
- PHP脚本重定向——通过使用PHP脚本进行重定向。如果您不能使用301和302重定向,这是最佳选择。
- JavaScript重定向——使用客户端JavaScript进行重定向。不推荐。
- HTML重定向——您可以用来从HTML页面重定向的客户端HTML代码。不推荐。
检测您的重定向
重定向不仅以页面重定向的形式出现。您的HTML、CSS或JavaScript代码中也可能有重定向,用于指向或导入其他URL或文件。损坏的请求工具可以检测您的网页上指向的所有301和302重定向。
如果您想检查您的实际URL是否使用重定向,您可以使用HTTP头检查器工具来检查HTTP状态代码。输入您的URL,点击按钮,看看您的网页是否有重定向以及重定向到哪里。如果您获得”HTTP/1.1 200 OK”代码,这意味着您的URL没有被重定向。如果您获得HTTP/1.1 301永久移动或HTTP/1.1 302临时移动代码,这意味着您的网页正在被重定向。
修复您的重定向
如上所述,您应该删除任何绝对不必要的重定向。必要的重定向应该始终是服务器端(301或302重定向),而不是客户端(HTML、JavaScript等)。因此,当您的网站使用客户端重定向时,请将它们替换为服务器端重定向。
如何创建301或302重定向
您可以编辑您的.htaccess文件来创建这些类型的重定向。下面我说明了一些您可以使用的代码示例:
从目录中的页面永久重定向到另一个页面:
Redirect 301 /directory/example.php http://www.exampledomain.com/examplepage.html
从页面临时重定向到目录中的另一个页面:
Redirect 302 /example.html http://www.exampledomain.com/directory/examplepage.php
从非www重定向到www(全站):
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteCond %{HTTP_HOST} ^(.+)$ [NC]
RewriteRule ^(.*)$ http://www\.%1/$1 [R=301,L]
根据您的需要编辑这些代码,并将它们添加到.htaccess文件中,然后将其保存到您的网站的根目录,.htaccess文件应该在那里。记住,只有在您真的必须使用时才使用这些重定向。如果您关心速度,最好不要使用任何重定向(但有时它们无法避免)。