【问题标题】:CodeIgniter | Certain controllers won't load depending on .htaccess?代码点火器 |某些控制器不会根据 .htaccess 加载?
【发布时间】:2016-11-23 14:03:35
【问题描述】:

我的 CodeIgniter 项目中有两个控制器。 - home.php -dashboard.php

由于某种原因,我的 htaccess 使dashboard.php 在我更改为以下内容时不可用:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /ci_intro/
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?/$1 [L] # THIS LINE HERE
</IfModule>

<IfModule !mod_rewrite.c>
  ErrorDocument 404 /index.php
</IfModule>

但是,当我将其更改为下面的代码时,home.php 不可用。

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /ci_intro/
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php/$1 [L] # THIS LINE HERE
</IfModule>

<IfModule !mod_rewrite.c>
  ErrorDocument 404 /index.php
</IfModule>

我不明白为什么,有人知道它为什么会这样做吗?

谢谢, 斯科特

【问题讨论】:

  • 你能展示你的控制器和你的文件结构的截图吗?
  • 试试,把home.php重命名为Home.php

标签: php .htaccess codeigniter codeigniter-3


【解决方案1】:

试试这些:

 <IfModule mod_rewrite.c>

     Options +FollowSymLinks
     RewriteBase /ci_intro
     RewriteEngine On
     RewriteCond %{HTTP_HOST} !^www\.
     RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
     #Send request via index.php
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule ^(.*)$ index.php?/$1 [L]

    </IfModule>

并将控制器 home.php 设为 class Home extends CI_Controller 并将其重命名为 Home.php 与 dashboard.php 相同

【讨论】:

    猜你喜欢
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2016-10-20
    • 2015-11-04
    相关资源
    最近更新 更多