Web服务器上的mvc配置

时间:2012-09-05 04:52:41

标签: php codeigniter codeigniter-routing

我最近将我的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();?>它在视图源中显示得很好但是当我点击它时,它回显了网址[www.myurl.com/project1/www.myurl.com/project1/为什么这样做?

2 个答案:

答案 0 :(得分:2)

看起来您已将CodeIgniter安装到子目录中。如果您希望从根网址加载CI网站,则应将其复制到一个目录,以便应用程序&amp;系统文件夹直接位于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

答案 1 :(得分:1)

让CI启动并运行非常简单。其中大部分都需要您编辑一些配置 文件。

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

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

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

$route['default_controller'] = "Helloworld" 

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

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

要编辑网址http://localhost/ci/index.php/helloworld/。您可以采取一些措施来改善您的CodeIgniter体验 - 喜欢从URL中删除恼人的index.php位。您可以通过在根文件夹中创建.htaccess文件并添加以下代码来完成此任务。

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

您还需要在system / application / config /中打开config.php文件,并将index_page数组项编辑为空字符串。 查看plaincopy到clipboardprint?

$config['index_page'] = "";   

另一个好玩的技巧是打开CI解析PHP替代语法的能力 未由服务器启用。为此,打开与以前相同的文件system / application / config / config.php,并将rewrite_short_tags数组项设置为TRUE。 查看plaincopy到clipboardprint?

$config['rewrite_short_tags'] = TRUE;  

我希望一切顺利!