我希望执行全站点301重定向。原始网站已超过15年!我理解使用代码制作.htaccess文件的概念:
redirect 301 "/old/old.htm" http://www.you.com/new.html
但是这会重定向旧网站的每一页吗?或者只是一个单独的页面。如何实现整个站点的重定向?
答案 0 :(得分:3)
我在.htaccess
(已启用apache重写mod)中重写,所有页面都来自旧网站
http://www.old.com和
http://www.old.com/site/index.php? ....重定向到新网站
http://www.new.com或
http://www.new.com/website/index.php? ...(注意/ site /和/ website /是不同的名称)
页面 https://www.old.com(请注意https://上的s)获取正确的重定向但页面来自 https://www.old.com/site/index.php? ...不,他们得到404错误
因为旧网站不再安全了 https://www.old.com或 https://www.old.com/site/index.php? ......真的存在了,但是 https://www.old.com被重定向,而那些被重定向 /site/index.php?...添加不会被重定向,而是转到404错误
答案 1 :(得分:2)
小心301,301重定向用于内容移动的位置。
e.g。关于制作蛋糕的内容在这里/makeacake.html现在是/cakes/making-a-cake.html。
我建议您查找大部分用途所在的页面,并将这些页面重定向到新的相关页面/部分,然后删除其余部分并添加自定义404错误页面。告诉他们旧的内容已被移动。
您还可以使用goggle web masters从索引中删除页面。
答案 2 :(得分:1)
假设旧页面不再存在(会抛出404错误),您可以执行以下操作:将所有不存在的页面重定向到起始页面。 (如下面的评论中所述。)
这是您可以用来实现更新的.htaccess代码。第一个RewriteCond检查请求的路径是否是文件,第二个检查它是否是一个目录。之后,您将被重定向到起始页 - 或任何其他页面。
http://www.example.com/i/am/an/old/page.html
或http://www.example.com/i/am/a/different/old/page.html
都会重定向到http://www.example.com/
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . / [R=301,L]
答案 3 :(得分:0)
重定向整个网站的最佳方法是通过您的网络服务器(或网络主机...进行域名转发......大多数都在其控制面板中有选项)。
域转发比将301重定向发送回客户端更有效。
答案 4 :(得分:0)
我是否正确地认为您的网站位于同一域名但您已在结构上进行了更改?
因此,您有大量旧页面网址现已更改为新网址(但在同一个域中)
例如,您可能有:
www.yourdomain.com/about-us/history.htm
现在变成了
www.yourdomain.com/our-history.htm
如果是这种情况,您很可能需要设置许多301重定向规则。它并不一定意味着您必须为每个页面更改设置一个规则,因为您可以使用RegEx来捕获URL结构中的模式更改。作为一个比例示例,我最近为一个网站设置了301重定向的htaccess文件,其中包含不到600个更改的URL。最后有70个301重定向规则
它不一定是一个小工作,但它是可行的。值得保留你的SEO排名。