上周我不得不重新设计一个网站。问题是最后的网址不是seo友好的,为了避免谷歌因为太多的404错误而惩罚我的网站,我必须创建大量的重写规则,因为所有的内容都有可怕的URL(并且内容很好)对SERP的立场)。
例如:
RewriteRule ^documents/documents_for_subject/22-ecuaciones-exponenciales-y-logaritmicas http://%{HTTP_HOST}/1o-bachillerato/matematicas-cc.ss/aritmetica-y-algebra/ecuaciones-exponenciales-y-logaritmicas [R=301,L]
这是我的表现问题吗?我的情况还有另一种解决方案吗?
由于
答案 0 :(得分:2)
他们属于同一个域名。
然后内部重定向要好得多。标头重定向将新URL发送到浏览器并使其发出新请求;正如名称所说,内部的内部处理。
这应该有效:
RewriteRule ^documents/documents_for_subject/22-ecuaciones-exponenciales-y-logaritmicas /1o-bachillerato/matematicas-cc.ss/aritmetica-y-algebra/ecuaciones-exponenciales-y-logaritmicas [L]
任何性能问题都可以忽略不计 - 除非您有数千或数万个单独规则,否则可能会降低Apache的速度。在这种情况下,如果您可以访问中央服务器配置,则将规则放在那里而不是.htaccess文件,因为服务器配置中的指令存储在内存中并且速度更快。
答案 1 :(得分:1)
一个。是的,使用301是通知搜索机器人有关更改的URL的正确方法,最终您的旧网址将从搜索结果中删除。
B中。您不需要在重写规则中使用%{HTTP_HOST}
,只需使用它:
RewriteRule ^documents/documents_for_subject/22-ecuaciones-exponenciales-y-logaritmicas http://%{HTTP_HOST}/1o-bachillerato/matematicas-cc.ss/aritmetica-y-algebra/ecuaciones-exponenciales-y-logaritmicas [R=301,L]
℃。如果你有很多像上面这样的RewriteRules,我建议使用RewriteMap,或者使用一些脚本支持(如PHP),用旧的URL重定向到新的URL。