这是一个非常有用的网站,我在这个问题上已经阅读了尽可能多的类似问题,但根本无法让我的301重定向工作。我认为这是因为我不理解我读过的答案中的复杂重定向代码所以我不知道如何更改答案中的代码以满足我的特定需求。所以我希望有人可以帮助我。
我有一个旧网店的网址看起来像这样:
类别如下所示:/store/cid-45-1/dog_collar_lead.html 产品看起来像这样:/store/pid-218/dog_tshirt_princess.html
我现在有一个来自不同购物车软件提供商的新商店(此次托管所以我必须使用子域名,以防信息很重要)我想重定向我的所有旧网址老店到我的新店。我花了好几个小时设置301重定向列表,就像我一直做的那样,但它不起作用: - (
所以我添加到我的htaccess文件中的一行是这样的:
重定向301 /store/cid-72-1/dog_collars_leads_hotdogs.html http://shop.mydomain.co.uk/leather-dog-collars-leads.html
但它重定向到这个,这是不对的:
http://shop.mydomain.co.uk/leather-dog-collars-leads.html?pg1-cid72.html
这个pg1-cid72.html和类似的东西被集中到我所有新网址的末尾。我无法弄清楚如何阻止这种情况发生。几个小时后我尝试了所有不同的回复,我在这里找到了其他问题,我仍然无法让它工作,所以在绝望中我放了一个?在每个网址的末尾,它已经停止了虚假的pg1-cid72.html类型的东西出现,但给了我一个?在每个网址的末尾,我觉得更好,但仍然不正确。我很担心谷歌不会喜欢这个并会惩罚我的网站或其他东西。我甚至在想,如果我不能让这个工作,也许我应该废弃所有的301重定向尝试,然后让404被退回?
有人可以帮我吗?
非常感谢你,
珍妮
感谢您到目前为止的回复。在下面的回复中添加建议的代码后,我的htaccess目前看起来像这样:
RewriteEngine on
rewritecond %{http_host} ^mydomain.co.uk [nc] rewriterule ^(.*)$ http://www.mydomain.co.uk/$1 [r=301,nc]
ErrorDocument 404 /errors/404.html
Redirect 301 /hotcars http://www.mydomain.co.uk/didyouknow_parked_cars.htm
Redirect 301 /charities_k9knitters.htm http://www.mydomain.co.uk /charities_woollies_waggers.htm
RewriteRule ^/store/cid-94-1/doza_cushion_dog_bed\.html$ http://shop.mydomain.co.uk/dog-cushions.html [R=301]
因此,实施建议的修复程序,现在我被重新定向到旧商店的商店,而不是重新定向到新商店。
抱歉,我想发布一个更好的回复,但一直告诉我不能发布超过2个链接,这妨碍了我的回复。我希望很清楚,希望你能提供帮助。谢谢。
当我访问时
http://www.dfordog.co.uk/store/cid-92-1/wooden_raised_dog_feeders.html
我希望最终能够
http://shop.dfordog.co.uk/raised-dog-bowls.html
但我最终还是
http://shop.dfordog.co.uk/raised-dog-bowls.html?pg1-cid92.html
所有人都一样。所以基本上url cid-92-1的Avactis代码部分以非用户友好的格式pg1-cid92.html被添加到我从旧商店重定向的所有新商店网址的末尾。
标准的Avactis网址在其中有这样的东西/代码pg1-cid92.html等...我选择通过选择用户友好的方式向客户cid-92-1显示更加用户友好的格式我去年开车时的选择。我很确定这与此有关。
我在Avactis论坛上找到了这个主题
http://www.avactis.com/forums/index.php?showtopic=3114
并认为它可能有所帮助,但他的情况与我的情况略有不同,因为他的Avactis网址未转换为我使用的用户友好网址...所以我不确定如何将此建议应用于我的情况。
谢谢,非常感谢您的帮助。
答案 0 :(得分:0)
使用RewriteRule而不使用[QSA]标记(默认情况下,它不起作用 - 所以不要添加它):
RewriteRule ^/store/cid-72-1/dog_collars_leads_hotdogs\.html$ http://shop.mydomain.co.uk/leather-dog-collars-leads.html [R=301]
?pg1-cid72.html
是对原始页面的原始请求的一部分,或者您在其他地方有一些其他规则正在添加它 - 在这种情况下,我们需要查看完整的Apache配置和.htaccess文件提供任何其他帮助。
但是,这个或任何其他规则都没有生效,因为RewriteRule
开头的第一个.htaccess
,它适用于并重定向旧域中的所有内容:< / p>
rewriterule ^(.*)$