重定向网站在PHP和htaccess,差异?

时间:2014-10-23 07:56:30

标签: php .htaccess http-status-code-301 redirect

这两个代码之间是否有任何差异(对于谷歌机器人等)?

PHP:

// 301 Moved Permanently
header("Location: /foo.php",TRUE,301);
exit;

的.htaccess

RewriteRule ^site1.php$ http://www.example.pl/text.html [R=301,L]

2 个答案:

答案 0 :(得分:1)

它们都会生成Location HTTP标头和301状态代码,Google无法知道过程中使用的工具。您的PHP版本缺少协议前缀和主机名,因此它在技术上无效(根据相应的RFC),但它是一种普遍的滥用,并且所有浏览器都做正确的事情。无论如何,代码都可以修复。

不知道Apache,但PHP性能往往会在每个主要版本上大幅提升。当然,您的精确服务器资源和负载可能会对大多数其他因素产生更大的影响。因此,我不认为以这样的一般条款更快地发挥作用是有道理的。给定您的服务器,运行基准测试并找到您的数据。

此外,如果必须考虑高性能,您还可以考虑跳过mod_rewrite并使用其他内容,例如mod_headers及其Header指令。或者删除Apache并切换到例如nginx; - )

答案 1 :(得分:0)

这些重定向方法没有什么不同,除非您使用PHP返回301标头,执行PHP解释器需要一些额外的时间。使用.htaccess时,不会调用PHP解释器。

相关问题