【问题标题】:htaccess Redirect to new urlhtaccess 重定向到新的 url
【发布时间】:2014-09-07 13:01:55
【问题描述】:

我有以下网址

   www.site.com/Photo/Actor/ActorName/GalleryName/2

这里 PhotoActor 是 url 中的静态字符串
ActorNameGalleryName 是动态的
2 是照片索引..

我如何将这个 url patten 重定向到以下内容

    www.site.com/Actor/ActorName/GalleryName/Photo/2

我正在更改我的网站网址格式。 我的网站已经在 google 中被很好地抓取和索引,所以我想将 url 重定向到新格式,所以当前索引的 url 不会死。

【问题讨论】:

  • 你有一个.htaccess吗?您是否使用任何 CMS,例如 WordPress 或类似的?
  • 是的。使用 .htaccess 我目前正在实施所有重定向。不使用 CMS。
  • 确定.. 实施它当前..

标签: .htaccess redirect


【解决方案1】:

你可以动态改写如下:

RewriteRule ^(Photo)/(Actor)/([^/]+)/([^/]+)/([0-9]+)$ /$2/$3/$4/$1/$5 [R=302,NC,L]

进一步解释:

^(Photo)/(Actor)/([^/]+)/([^/]+)/([0-9]+)$

这意味着,如果它以 Photo/Actor/ActorName/GalleryName/Numbers 开头。

然后使用 301 永久重定向重定向到 Actor/ActorName/GalleryName/Photo/Numbers

/$2/$3/$4/$1/$5 表示对上述内容的重新排序。


请记住,我在上面的代码中使用R=302,您还应该使用R=302,直到您确认它完全满足您的需求,然后您可以安全地将其切换到R=301

这是为了防止您的浏览器因之前的尝试而被缓存,这样您就可以在确定它之前查看它是否正常工作。

如果您之前已经尝试过,我建议您使用其他浏览器来测试您未用于访问该站点的 URL,以确保它不会访问缓存信息。

【讨论】:

  • 完美。此重定向有效.. 不是 htaccess 专家。学习它。
  • @ChiranjeeviPadala 很高兴它对您有用 :) 如果您想阅读和了解更多信息,这里是 mod_rewrite 的一个很好的介绍。 httpd.apache.org/docs/2.2/rewrite/intro.html
  • 感谢您的建议和解决方案。
【解决方案2】:
RewriteRule ^Photo/Actor/([^/]+)/([^/]+)/(\d+)  Actor/$1/$2/Photo/$3  [L,R=301]

【讨论】:

    【解决方案3】:

    你可以使用:

        <?php
    
    header("Location: http://www.mydomain. com/new-page.html", true, 301);
    exit();
    ?>
    

    了解更多:http://prowpexpert.com/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-14
      • 2022-06-11
      • 1970-01-01
      • 1970-01-01
      • 2012-03-23
      • 2013-09-28
      相关资源
      最近更新 更多