【问题标题】:Codeigniter server error when the URL contains any controller or method with arguments on a hosting service当 URL 包含任何带有托管服务参数的控制器或方法时,Codeigniter 服务器错误
【发布时间】:2016-03-13 00:43:36
【问题描述】:

我确实使用 codeigniter 框架在 localhost 上开发了我的网站,然后我从 www.web.com 获得了一个域名和托管服务。

我将我的网站上传到服务器根文件夹中的文件夹 htdocs。 这是结构:

  • /
    • cgi-bin
    • htdocs
      • 应用
      • 系统
      • js
      • CSS
      • img
      • index.php
      • .htaccess

假设我的域是 www.example.com 并且它指向 htdocs 文件夹。

当我输入 www.example.com 时,它会成功打开我的主页而没有错误。

但是当我尝试打开任何其他页面时,例如 www.example.com/productswww.example.com/products/browse_product/2 它会加载页面成功但在每一页的末尾总是出现这个错误

ERROR SCREENSHOT

我的 .htaccess 文件:

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/system.*
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?/$1 [L]

【问题讨论】:

  • 您可以添加您的.htaccess 文件吗?
  • 没有 htaccess 文件是否可以工作
  • 不,没有.htaccess,它不会加载任何其他控制器
  • @MohamedHana 请添加服务器日志
  • 我不知道在哪里可以找到服务器日志?

标签: php .htaccess codeigniter web-hosting htdocs


【解决方案1】:

我确实通过执行以下操作解决了问题:

/* config.php 文件 */

$config['index_page'] = ''; 
$config['uri_protocol'] = 'REQUEST_URI';

/* routes.php 文件 */

$route['default_controller'] = "home"; 
$route[''] = "home/index"; 
$route['home'] = "home/index"; 
$route['404_override'] = ''; 

/* 主 .htaccess 文件 */

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2021-10-12
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 2013-02-15
    相关资源
    最近更新 更多