Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http URL重定向;对于一般用途,哪一个更好:服务器端还是客户端?_Http_Url_Redirect_Seo_Webserver - Fatal编程技术网

Http URL重定向;对于一般用途,哪一个更好:服务器端还是客户端?

Http URL重定向;对于一般用途,哪一个更好:服务器端还是客户端?,http,url,redirect,seo,webserver,Http,Url,Redirect,Seo,Webserver,以一个非常简单的案例为例,假设我有以下URL: http://www.example.com/65167.html 我希望通过以下方式提供该内容: http://www.example.com/about 更新:请注意,“坏”URL是规范的URL(它由CMS生成,CMS内部使用它进行链接),因此“/about”只是一种改进它的方法 我有两个广泛的选择:服务器端重定向或客户端重定向。我一直认为服务器端会更好,因为它更高效,也就是说HTTP流量大约减少了一半。然而,SEO技术倾向于为一个资源使用

以一个非常简单的案例为例,假设我有以下URL:

http://www.example.com/65167.html
我希望通过以下方式提供该内容:

http://www.example.com/about
更新:请注意,“坏”URL是规范的URL(它由CMS生成,CMS内部使用它进行链接),因此
“/about”
只是一种改进它的方法

我有两个广泛的选择:服务器端重定向或客户端重定向。我一直认为服务器端会更好,因为它更高效,也就是说HTTP流量大约减少了一半。然而,SEO技术倾向于为一个资源使用一个URL,因此客户端是首选


如何解决此冲突,以及我是否忽略了其他因素?

Apache HTTPD的mod_rewrite可以让浏览器在其位置栏中显示SEO友好的URL,同时重定向到服务器上的数字URL:

RewriteEngine on
RewriteRule ^/about$ /65167.html [L]

我很肯定谷歌理解。

如果你从/即将从/65167.html重定向到/65167.html,301是解决这个问题的错误方法。您的CMS将只理解65167.html 请求,但301基本上是告诉谷歌/about不再存在,并为65167.html页面编制索引

伊格纳西奥是正确的。根据您的平台,您需要实现mod_rewrite或类似功能,并隐藏CMS,前提是您可以将所有CMS生成的链接重新写入更友好的内容


客户端重定向可能过于复杂,无法实现,而服务器端重定向将导致向服务器发出两个请求。

虽然这是一个选项,但并不能解决问题:同一资源仍然存在两个URL。事实上,最令人讨厌的是规范化的(我会更新这个问题来提及),所以我不认为这个修复是我想要的。你可以使用另一个重定向规则对传入请求“隐藏”65157.html URL。使用服务器端的重新映射,搜索引擎无法知道什么是“规范的”,所以如果你不链接到“丑陋的”URL,他们可能不会找到它。不幸的是,根据我的问题编辑,生成这些URL的CMS也会生成指向它们的链接,因此它们将保持公开。呃!在这种情况下,您必须将“(id).html”301改为“about”,然后将“about”改回“(id).html”。是的,这将涉及到对每个页面不必要的HTTP请求,并且可能会减慢Googlejuice的传播速度。更好的计划:修复CMS链接到正确的URL。你是对的。我不知道我在想什么。我会删除我愚蠢的答案。