我有一个名为: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";
是否可能或会导致无限循环?有人有一个代码示例吗?
答案 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 /.
但它并不令人满意,我会有一个完全看不见的重定向。所以我想我正在进行手动搜索和替换;)然后只使用路由。