【问题标题】:codeigniter and cpanel installationcodeigniter 和 cpanel 安装
【发布时间】:2025-11-25 00:40:01
【问题描述】:

我对将 codeigniter 移动到我的网络服务器是全新的,并且我在配置方面遇到了问题。我应该将我的 codeigniter 项目文件夹放在 myurl.com 下 www 的根目录中的什么位置?我应该移出应用程序和系统文件夹吗?

我想删除 index.php?从我的 URL 名称中,我应该将我的 .htaccess 文件放在根目录中还是与我的 codeigniter 目录相同的文件夹中?

我希望能够输入 (www.myurl.com) 并被重定向到我的 home_controller/index 这可能吗?

下面是我的 .htaccess 文件的全部内容

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /MMSFL/


#'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]


#Rename 'application' to your applications folder name.
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php/$1 [L]


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

<IfModule !mod_rewrite.c>


ErrorDocument 404 /index.php
</IfModule>

我还在 config/routes 中做了如下改动

    $config['index_page'] = "";
    $config['base_url'] = "http://myurl.com/";
    $config['server_root'] = $_SERVER['DOCUMENT_ROOT'];
    $config['uri_protocol'] = 'AUTO';

$route['default_controller'] = "home_controller";

【问题讨论】:

  • 公共 html 文件夹你应该把你的项目文件夹。不需要删除任何文件夹。在配置中设置基本路径

标签: php codeigniter codeigniter-routing


【解决方案1】:

目录结构

如果可能,建议您将systemapplication 文件夹保留在Web 根目录上方。您的index.php 文件需要可以从浏览器访问,所以它应该放在您的public_html 文件夹中。以下是您可以使用的可能目录结构:

-/home/edd
    -public_html
        -index.html
        -.htaccess
    -system
    -application

如果需要,您可以重命名系统和应用程序文件夹,或创建另一个子目录来放置它们。


index.php

index.php 中,您需要更新$system_path$application_folder 以反映系统和应用程序文件夹的位置和名称。您可以使用绝对路径或相对路径。相对路径如下图:

$system_path = '../../system';
$application_folder = '../../application';

.htaccess

.htaccess 文件的前两个部分用于防止用户访问您的系统和应用程序文件夹。如果您将它们存储在 Web 根目录之上,那么您实际上并不需要它。如果保留它们,则需要更新路径。此文件应位于您的 public_html 文件夹中。


application/config/config.php

正如您已经正确完成的那样,应该从 index_page 配置中删除 index.php 值,因此可以使用 .htaccess 从您的 url 中删除 index.php 文件;

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

应该改为:

$config['index_page'] = '';

您可能还需要进行此更改:

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

(如果您对这个值不满意,请尝试其他值。应该可以!)


application/config/routes.php

$route['default_controller'] = "home_controller";

(假设这是您的控制器的名称。)


您的网站可能依赖于一些资产,例如 CSS 和 JavaScript。这些应该进入您的网络根目录 - public_html。您可以随意组织这些文件。

【讨论】:

    【解决方案2】:

    将位于 CI 文件夹中的所有文件移动到 public_html.htaccess 文件应位于 public_html 的根目录下(应用程序、系统、index.php 等也驻留于此)。

    旁注:不要将$config 值放入/config/routes.php - 那些需要在/config/config.php

    【讨论】: