【问题标题】:CodeIgniter and htaccess RewriteRuleCodeIgniter 和 htaccess RewriteRule
【发布时间】:2012-11-10 23:24:38
【问题描述】:

我有一个名为(例如)TheLink 的控制器,我通常可以通过 mywebsite/index.php/TheLink 访问它。是否可以在 htaccess 中创建 RewriteRule 以通过 mywebsite/index.php/The-Link 访问它而不重定向到 TheLink?所以基本上我想要它的 URL 说 mywebsite/index.php/The-Link (带破折号)但使用 TheLink 控制器。 我试过了

RewriteRule ^The-Link$ index.php/TheLink [大]

但这只是将我重定向到默认的 CodeIgniter 404 页面

【问题讨论】:

    标签: .htaccess mod-rewrite codeigniter-2


    【解决方案1】:
    # To remove index.php from URL
    
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php/$1 [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
    

    此外,如果网站托管在另一个目录中,而不仅仅是根目录,请添加:

    RewriteBase /some_directory/
    

    【讨论】:

    • 谢谢你,但这不是我问的。我的问题是如何在 URL 中使用破折号,因为控制器类显然不能用破折号命名。示例:所需 URL:.../My-Link/ ---- 控制器名称:MyLink
    【解决方案2】:

    好吧,显然这个问题与 htaccess 无关,而是以完全不同的方式解决。在这里找到解决方案:

    Codeigniter Routes regex - using dashes in controller/method names

    编辑:此外,还有许多不同的解决方案,包括上述解决方案,可在此处找到: http://ellislab.com/codeigniter/forums/viewthread/124396/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-25
      • 2016-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多