使用路由的代码点火器&;301重定向


Codeigniter using routes & 301 redirects

我正在部署一个新网站,该网站需要为谷歌索引的现有链接设置301个重定向。

有人能建议如何使用路线功能&正则表达式I强制任何链接使用新的301重定向。

例如,路线

$route['hotel/pages/([a-z0-9_-]+)//'.htm$/'] = 'hotel/page/redirect/$1/$2';

所以我想要任何遵循以下结构的页面:

site.com/hotel/pages/somesection/page.html

使用另一个控制器,在那里我将设置301重定向(我可以做这个位)

有人能给我一些建议吗?

这应该做(建立了一个快速的本地测试并成功了):

$route['hotel/pages/(:any)/('w+.html$)']  = 'hotel/page/redirect/$1/$2';

:any(CI的东西)很像/'w+/i,所以它匹配第三段中的任何东西,并重新映射到$1;然后有一个斜线,然后是任何字符,重复更多次,以".html"结尾,它重新映射到$2

在apache上,如果映射足够简单,可以用正则表达式来描述,那么只需使用mod_rewrite并跳过重定向控制器。

例如:

RewriteEngine On
RewriteRule ^hotel/pages/(.*)/(.*'.html?)$ http://site.com/hotel/$1/$2 [R=301,L]

会给你301

site.com/hotel/pages/somesection/page.html

site.com/hotel/somesection/page.html