【问题标题】:Why won't this mod_rewrite rule work with CodeIgniter?为什么这个 mod_rewrite 规则不适用于 CodeIgniter?
【发布时间】:2013-04-09 04:29:14
【问题描述】:
RewriteRule ^(new-york/new-york-city/chelsea/10001) index.php [L]

上面的代码不起作用。它在 Codeigniter 中给了我一个 404 错误。但是,以下代码确实有效。

RewriteRule ^(new-york/new-york-city/chelsea/10001) http://anywebsitehere.com/ [L]

【问题讨论】:

  • 您的 .htaccess 文件在哪里?如果它位于一个奇怪的位置......您可能需要考虑使用RewriteBase
  • .htaccess 文件位于主目录中。
  • 也不起作用。它一直试图通过控制器/动作的 CodeIgniter 模式加载一个名为 new-york 的页面,并给我一个 404。
  • 其实,你为什么要使用这样的重写规则呢? :)
  • 您应该使用标准的 CI .htaccess 文件,并使用路由来捕获这些。

标签: .htaccess codeigniter mod-rewrite


【解决方案1】:

RewriteRule 只是重写为index.php,它调用默认路由,如果你有一个设置的话。如果你想去你的搜索,你必须重写搜索控制器和方法,并将漂亮的 URL 或它的一部分作为参数传递

RewriteRule ^new-york/new-york-city/chelsea/10001 index.php/search_controller/search_method/$0 [L]

这将在application/controllers/search_controller.php 中调用search_method 方法,并将漂亮的URL 作为参数

search_method('new-york', 'new-york-city', 'chelsea', '10001');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 2011-06-09
    • 1970-01-01
    相关资源
    最近更新 更多