【问题标题】:Codeigniter htaccess and routing for a SEO controller name in urls网址中 SEO 控制器名称的 Codeigniter htaccess 和路由
【发布时间】:2012-08-30 17:55:09
【问题描述】:

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

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

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

【问题讨论】:

  • 单独的 $route 声明应该足以让它工作 - 无需向 .htaccessfile 添加内容。

标签: .htaccess codeigniter routes rewrite codeigniter-2


【解决方案1】:

这应该不会造成问题。 CI Route 在技术上不是重定向,它只是使用 URI 模式来调用特定的控制器。这应该可以。

你试过看看会发生什么吗?您的问题建议不要试用。

【讨论】:

    【解决方案2】:

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

    htaccess:

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

    Routes.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/。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-02
      • 1970-01-01
      • 1970-01-01
      • 2015-08-01
      • 1970-01-01
      • 2010-10-24
      • 2011-09-05
      • 1970-01-01
      相关资源
      最近更新 更多