0

我最近将我的 codeigniter 项目上传到我的网络服务器上。

它在一个名为 project1 的文件夹中,这是我的目录视图的样子

[www.myurl.com]
  |-> project1
        |-> application
        |-> css
        |-> images
        |-> js

我有两个问题。

首先是我希望它在我访问 (www.myurl.com) 而不是 (www.myurl.com/project1/main_controller/index.php/welcome) 时加载我的欢迎视图。我如何摆脱所有这些垃圾?

第二个问题是当我使用<?php echo base_url();?>它时,它在视图源中显示得很好,但是当我点击它时,它会回显 url [www.myurl.com/project1/www.myurl.com/project1/] 为什么会这样?

4

2 回答 2

2

看起来您已将 CodeIgniter 安装到子目录中。如果你希望你的 CI 站点从根 url 加载,你应该将它复制一个目录,这样 Application & System 文件夹就在你的 web 目录的根 url 下。从那里,由 shail 发布的 .htaccess 规则(并在下面引用)应该注意删除路径中的 index.php。

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteRule ^(.*)$ ci/index.php/$1 [L]

关于 site_url() 问题,请确保您在 application/config/config.php 中设置了 $config['base_url'] 变量,并且它包含尾部斜杠。

$config['base_url'] = "http://www.myurl.com/";

要进一步测试这一点,请尝试将参数传递给 site_url() 函数,如下所示:

echo site_url(welcome);

如果一切设置正确,应该返回:http ://www.myurl.com/welcome。

于 2012-09-05T05:28:18.757 回答
1

启动和运行 CI 相当简单。其中大部分需要您编辑一些配置文件。

您需要设置 CI 以指向应用程序的正确基本 URL。为此,请打开 system/application/config/config.php 并编辑 base_url 数组项以指向您的服务器和 CI 文件夹。查看plaincopy到剪贴板打印?

$config['base_url'] = "http://localhost/ci/";  

目前,CI 设置将有一个名为“welcome.php”的默认控制器;您可以在 system/application/controllers 文件夹中找到它。对于本教程,删除它并打开您的 system/application/config/routes.php 文件。更改默认数组项以指向“helloworld”控制器。查看plaincopy到剪贴板打印?

$route['default_controller'] = "Helloworld" 

CI 还有一个我们不需要的视图文件。打开 system/application/view/ 文件夹并删除 welcome_message.php 文件。

您可以在此处更改默认控制器。

为了编辑 Url http://localhost/ci/index.php/helloworld/。你可以做一些事情来改善你的 CodeIgniter 体验——比如从 URL 中删除那个烦人的 index.php 位。您可以通过在根文件夹中创建一个 .htaccess 文件并添加以下代码来完成此任务。

RewriteCond 上的 RewriteEngine $1 !^(index.php|images|robots.txt) RewriteRule ^(.*)$ ci/index.php/$1 [L]

您还需要打开 system/application/config/ 中的 config.php 文件并将 index_page 数组项编辑为空白字符串。查看plaincopy到剪贴板打印?

$config['index_page'] = "";   

另一个绝妙的技巧是打开 CI 解析 PHP 替代语法的能力,如果它没有被服务器启用的话。为此,请打开与之前相同的文件 system/application/config/config.php,并将 rewrite_short_tags 数组项设置为 TRUE。查看plaincopy到剪贴板打印?

$config['rewrite_short_tags'] = TRUE;  

我希望一切顺利!

于 2012-09-05T05:04:32.977 回答