我正在部署一个新网站,该网站需要针对由Google编制索引的现有链接进行301重定向设置。
任何人都可以建议如何使用路线功能&正则表达式我强制任何链接使用新的301重定向。
E.g。路线
$route['hotel/pages/([a-z0-9_-]+)//\.htm$/'] = 'hotel/page/redirect/$1/$2';
所以我想要遵循以下结构的任何页面:
site.com/hotel/pages/somesection/page.html
使用另一个控制器,我将设置301重定向(我可以这样做)
有人能给我一些建议吗?
答案 0 :(得分:1)
这应该做(建立一个快速的本地测试并且它起作用):
$route['hotel/pages/(:any)/(\w+.html$)'] = 'hotel/page/redirect/$1/$2';
:any
(CI的内容)与/\w+/i
非常相似,因此它匹配第3段中的任何内容,并重新映射到$1
;然后你有一个斜线,然后是任何角色,重复多次,并以'.html'结尾,重新映射到$2
答案 1 :(得分:1)
在apache上,如果映射很简单,可以使用正则表达式进行描述,则可以使用mod_rewrite
并跳过重定向控制器。
例如:
RewriteEngine On
RewriteRule ^hotel/pages/(.*)/(.*\.html?)$ http://site.com/hotel/$1/$2 [R=301,L]
会从
给你一个301site.com/hotel/pages/somesection/page.html
到
site.com/hotel/somesection/page.html