【问题标题】:Codeigniter home page working fine but showing 404 for other pagesCodeigniter 主页工作正常,但其他页面显示 404
【发布时间】:2015-04-29 09:28:52
【问题描述】:

我已经在公共 IP 上上传了工作的 codeignter 应用程序进行测试。 主页可以正常工作,但其他页面无法正常工作。

但我可以访问内部文件,如下所示: http://ip-address/index.php/about-us/who-we-are

我的文件如下:

**config.php**

$config['base_url'] = '';
$config['index_page'] = '';
$config['uri_protocol'] = 'AUTO';


**routes.php**

$route['about-us/(:any)'] = "page/aboutUs/$1";
$route['contact-us/(:any)'] = "page/contactus/$1";
$route['plan-articles'] = "page/planArticles";

$route['(:any)'] = "page/$1";

$route['default_controller'] = "page";
$route['404_override'] = '';


**.htacess**

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond $1 !^(index\.php|assets|fav\.ico|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?$1 [L] 
</IfModule>

【问题讨论】:

  • 你是在根文件夹还是子文件夹?
  • 在根文件夹上,但我可以以http://ip-address/index.php/about-us/who-we-are访问内部文件
  • 这是一个正确的链接吗?尝试将整个域放入您的 base_url
  • 如果你从windows上传的问题可能是文件名大小写不同,你会收到404错误吗?
  • 把这个$route['about-us/(:any)'] = "page/aboutUs/$1";改成这个$route['about-us/(:any)'] = "page/index.php/aboutUs/$1";

标签: php codeigniter


【解决方案1】:

问题在于没有从 Apache 服务器调用您的项目特定的 .htaccess 文件。

您必须在 apache httpd.conf 中检查 "AllowOverride All" 是否处于活动状态。

【讨论】:

    【解决方案2】:

    我用 CI 做了几个项目。从来没有遇到过这样的错误。

    使用这个.htacess

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

    额外知识:

    如果您担心您的 URL 及其外观,您可以对每个页面使用不同的控制器。

    如果产品页面使用产品控制器,如果关于我们页面 你可以使用aboutUs。那么你的 URL 看起来像 www.example.com/product/www.example.com/aboutUs/

    因此,每个控制器都可以使用功能并且可以做很多事情。 $route 也是最好的方法。但这是最简单的方法。

    【讨论】:

      【解决方案3】:

      将每个页面创建为控制器/视图 然后你可以重定向到控制器,它会加载视图。

      布局示例:

      application/controllers/main.php
      application/controllers/page1.php
      application/views/main.php
      application/views/page1.php
      

      这可能会有所帮助:How do I get the project basepath in CodeIgniter

      【讨论】:

        猜你喜欢
        • 2019-09-20
        • 2021-09-19
        • 1970-01-01
        • 2020-08-30
        • 2017-03-12
        • 2019-11-12
        • 2011-06-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多