0

我有一个名为:main_controller 的控制器,我的应用程序中的所有链接都使用 url 引用它,例如:/main_controller/...

现在我想在所有这些中插入一些SEO并将 url 更改为更 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";

有可能还是会导致无限循环?有人有这方面的代码示例吗?

4

2 回答 2

1

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

你有没有试过看看会发生什么?你的问题建议不要审判。

于 2012-09-05T23:50:57.110 回答
0

感谢您的回复,我听从了您的建议,并尝试通过以下方式确认:

访问:

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

路由.php

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

页面内网址是:

http://local.com/main_controller

单击它时它可以工作,并且在重定向+路由后它以:

http://local.com/seo_controller

但我很遗憾它不是“完全隐形”。

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

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

于 2012-09-06T22:17:18.160 回答