【问题标题】:Codeigniter website not working on live server page not foundCodeigniter 网站无法在未找到的实时服务器页面上运行
【发布时间】:2018-05-24 11:44:37
【问题描述】:

我已经在 000webhost 服务器上的 vegshop 文件夹中上传了我的网站,我的链接是“http://sp16bcs034.000webhostapp.com/vegshop/”,但是找不到错误 404 页面

我的 .htaccess 文件代码是:

Options +FollowSymLinks
Options -Indexes
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 
!^(index\.php|resources|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]

【问题讨论】:

  • 我怀疑你在 config/routes.php 中的默认控制器可能是罪魁祸首。确保它与您要使用的控制器匹配。这是不存在 URI 时最常见的错误。
  • $route['default_controller'] = 'products';
  • 在本地 xampp 服务器上运行良好

标签: php .htaccess codeigniter


【解决方案1】:

试试下面的

打开 config.php 并进行以下替换

$config['index_page'] = "index.php"

$config['index_page'] = ""

在某些情况下,uri_protocol 的默认设置无法正常工作。直接替换

$config['uri_protocol'] ="AUTO"

通过

$config['uri_protocol'] = "REQUEST_URI"

.htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

注意:.htaccess 代码因托管服务器而异。在某些托管服务器中需要使用额外的?在上面代码的最后一行。在适用的情况下,以下行将替换为最后一行:

// 用这一行替换最后的 .htaccess 行

RewriteRule ^(.*)$ index.php?/$1 [L,QSA] 

【讨论】:

  • 如何知道我的服务器的最后一行
  • 如果我与您共享托管详细信息,请您检查一下吗?
【解决方案2】:

试试这个 htaccess 文件,你已经在子文件夹中上传了代码。

Options +FollowSymLinks
Options -Indexes
DirectoryIndex index.php

RewriteEngine on
RewriteRule ^$ /vegshop/index.php [L] 
RewriteCond $1 !^(index\.php|resources|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /vegshop/index.php/$1 [L,QSA]

或者有时你必须根据服务器将上面代码中的最后一行替换为这个

RewriteRule ^(.*)$ /vegshop/index.php?/$1 [L,QSA]

【讨论】:

    【解决方案3】:

    将 .htaccess 文件放在 vegshop 文件夹下

    <IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on
    RewriteBase /vegshop
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
    </IfModule>
    
    <ifmodule !mod_rewrite.c>
      ErrorDocument 404 /index.php
    </ifmodule>
    

    在application/config/config.php中设置如下

    $config['base_url'] = 'http://sp16bcs034.000webhostapp.com/vegshop/';
    

    【讨论】:

    • 我在路由文件中做了这个配置:$route['default_controller'] = 'products';
    猜你喜欢
    • 2016-04-18
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    • 2018-03-14
    • 2015-07-21
    • 1970-01-01
    相关资源
    最近更新 更多