1

我开发了一个简单的网站,它从 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 视图文件中,我使用了函数 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/show 部分不可见,并且我只看到这样的空 href 值<a href=""><img src="assets/images/cookie.jpg" /></a>

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

4

2 回答 2

3

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

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

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

define('BASE_URL', 'http://site.com');
define('BASE_PATH', '/path/to/CI/folder');
于 2010-06-23T14:22:38.280 回答
0

关于 base_url 的简短说明 - 动态设置此变量可能是一个好主意,因为它将允许您的站点支持多个域。

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

http://thecodeabode.blogspot.com/2010/10/codeigniter-supporting-multiple-domains.html通过提供考虑协议和端口的脚本对此进行了一些扩展。

于 2010-10-08T05:40:49.900 回答