Codeigniter:Base_url似乎不起作用

时间:2010-06-18 04:39:59

标签: php codeigniter codeigniter-url

我开发了一个简单的网站,可以从Twitter公共时间线获取推文,将其缓存60秒等等。我最近将主机从Hostgator移动到Mediatemple,我的网站以前在Hostgator上工作正常。

我的应用程序不使用数据库连接,也不使用任何形式的平面文件数据库。推文缓存在存储在根目录中的XML文件中,而不是大部分内容都很重要。

正在包含url帮助器,如下所示(这是来自autoload.php的帮助器行):$autoload['helper'] = array('url');

我还使用.htaccess指令从URL中删除了我的index.php文件,并再次使用了Hostgator(请参阅下面的.htaccess代码):

RewriteEngine On
RewriteRule ^(application) - [F,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

在我的home.php视图文件中,它位于应用程序内的views文件夹中,我使用的函数base_url()以前在我的视图文件中处理Hostgator并在我的标题中附加一个基本的href值: <base href="<?php echo base_url(); ?>" />

这是我的base_url值在config.php文件中的样子:

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

虽然看起来正在发生的事情是根本没有看到base_url。它似乎没有回显出base_url的值,因为它出于某种原因似乎是空的。

令人讨厌的是我在另一个名为'fetch.php'的视图文件中有一个链接,由于某种原因,它似乎正在剥离该值(XSS过滤已关闭):<a href="threetune/show"><img src="assets/images/cookie.jpg" /></a> threetune /显示部分是不可见的,我只看到一个空的href值,如<a href=""><img src="assets/images/cookie.jpg" /></a>

任何人都可能看到我可能做错了什么,某种Mediatemple服务器限制或需要设置的PHP.ini标志?谢谢,我希望我的描述性足够。

2 个答案:

答案 0 :(得分:3)

我也在网格上。在重新阅读您的问题并进行一些测试(对我有用)之后,我认为发生的事情是您忘记加载url帮助器。

如果您希望通过base_url()在应用程序中使用网站基本网址,则需要先加载url帮助程序。通过config / autoload.php或在控制器中手动加载。

否则你可以使用config / constants.php来定义常量变量:

define('BASE_URL', 'http://site.com');
define('BASE_PATH', '/path/to/CI/folder');

答案 1 :(得分:0)

只需快速了解base_url - 动态设置此变量可能是一个好主意,因为它可以让您的网站支持多个域。

(i.e. $config['base_url']    = ‘http://’.$_SERVER['HTTP_HOST'])

http://thecodeabode.blogspot.com/2010/10/codeigniter-supporting-multiple-domains.html通过提供考虑协议和端口的脚本来扩展这一点。