Codeigniter htaccess和URL中的SEO控制器名称的路由

时间:2012-09-05 23:33:24

标签: .htaccess codeigniter routes rewrite codeigniter-2

我有一个名为:main_controller的控制器 我的应用中的所有链接都使用以下网址引用它:/main_controller/...

现在我想在所有这些中插入一些 SEO 并将网址更改为更像seo的/seo_name_for_controller/...

而不是进行全面的手动搜索&替换可能导致错误的所有事件,我希望我可以使用 htaccess 执行此操作,例如:

RewriteRule ^/main_controller/(.*)$ /seo_name_for_controller/$1 [L,R=301]

然后使用 routes.php 完成以下过程:

$route['seo_name_for_controller/(:any)'] = "main_controller/$1";

是否可能或会导致无限循环?有人有一个代码示例吗?

2 个答案:

答案 0 :(得分:1)

它不应该导致问题。 CI路由在技术上不是重定向,它只是使用URI模式来调用特定的控制器。这应该有用。

你试过看看会发生什么吗?你的问题表明没有试用。

答案 1 :(得分:0)

thanx对你的回复,我听从你的建议,我试着确认:

<强> htaccess的:

RewriteRule ^main_controller/(.*)$ seo_controller/$1 [L,R=301]

<强> routes.php文件

$route['seo_controller/(:any)'] = "main_controller/$1";

inpage网址为:

http://local.com/main_controller

单击时可以正常工作,重定向+路由后,它将以:

结束
http://local.com/seo_controller

但我很难过它并非“完全看不见”。

因为它在重定向之前首先在地址栏中使用“普通网址”(/ main_controller /)。 它最终工作并执行/ main_controller / actions,而最后一个url是/ seo_controller /.

但它并不令人满意,我会有一个完全看不见的重定向。所以我想我正在进行手动搜索和替换;)然后只使用路由。