我已经更新了我的网站,现在使用codeigniter框架,我的新网址如下所示example.com/index.php/home/page/page-title
旧网址为example.com/index.php?option=com_content&view=article&id=249
理想情况下,我想对旧链接格式化的所有链接进行重定向,但网站上有很多页面,且标题/ ID不匹配。
我不想为每个页面编写单独的规则。例如
重定向301 /oldpage.html http://www.example.com/newpage.html
如果这更容易,我不介意将所有错误格式化的网址重定向到主页/ 404页面。
我可以看到这需要一个更复杂的规则,使用我从未擅长的正则表达式。
任何帮助表示赞赏
由于
答案 0 :(得分:1)
服务器不知道哪个ID可能与给定标题匹配。您必须在CodeIgniter中处理这些情况。使用所有旧ID和新URI构建表。编写一个处理这些请求的脚本并进行重定向。
示例(我最近没有碰过CI):
# parameter 'id' followed by a '=' followed by a number
RewriteCond %{QUERY_STRING} id=(\d+)
RewriteRule ^ /redirector/url/%1? [L,R=301]
重定向器可以是CI类,查看url
,将验证为正整数,在数据库中搜索匹配的新URI并发送一个Location
标题。
答案 1 :(得分:0)
尝试RewriteMap
指令。有关详细信息,请参阅http://httpd.apache.org/docs/2.0/misc/rewriteguide.html。