【问题标题】:redirect or route old url to new url将旧网址重定向或路由到新网址
【发布时间】:2012-12-23 12:45:07
【问题描述】:

我有一个使用 codeigniter 开发的网站,现在我更改了 url 结构如下

old:
www.website.com/library/country/city/boot_title/book_id

new:
www.website.com/library/bookings/city/country/boot_title/book_id


 www.website.com/library/country/ - displays books country wise
 www.website.com/library/country/city/ - displays books city wise

目前大约有 1500 个页面,涉及大约 100 个国家/地区。

将旧网址重定向或路由到新网址的最有效方式是什么?

【问题讨论】:

  • mod_rewrite 可以解决问题。类似RewriteRule ^library/([^/]+)/([^/]+)/([^/]+)/([^/]+) /library/bookings/$2/$1/$3/$4 [L,R=302]
  • 我在这里假设bookings 只是一个固定字符串,而不是变量。

标签: php .htaccess codeigniter codeigniter-2


【解决方案1】:

也许这就是你要找的东西:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/([\w]+)/([\w]+)/([\w]+)/([\w]+)/([\w]+)/?$
RewriteRule .*   %1/bookings/%3/%2/%4/%5     [L,R=301]

重定向:

http://www.website.com/library/country/city/boot_title/book_id

收件人:

http:www.website.com/library/bookings/city/country/boot_title/book_id

【讨论】:

    【解决方案2】:

    您可以在application/config/routes.php 中将旧路线映射到新路线。

    查看 CI 文档的 this page 以了解路由的工作原理。

    虽然您可以使用 .htaccess 来重写您的路由,但我认为它应该是任何具有自己路由的框架的最后手段,因为它变得更加难以理解/管理并且服务器特定。 Nginx 不支持 .htacess,例如虽然在某些时候它可能不是一个问题。

    【讨论】:

      猜你喜欢
      • 2016-09-01
      • 2015-08-02
      • 1970-01-01
      • 1970-01-01
      • 2021-10-21
      • 1970-01-01
      • 1970-01-01
      • 2021-06-22
      • 1970-01-01
      相关资源
      最近更新 更多