如果我想在之后使用固定链接怎么办?
每次在永久链接中进行更改时,我都必须更改整个系统代码吗?
是否有一个库从这些参数生成链接并且动态配置?
例如,如果我想从以下位置更改系统目录:
http://testing/webapp/index.php
为:
http://production/index.php
我需要更改所有代码吗? 这是什么最好的做法?
答案 0 :(得分:3)
您可以使用codeingiter的方法base_url()和site_url()。
首先,您需要在控制器中加载URL帮助程序:
$this->load->helper('url');
请参阅下面的定义(根据CI文档,http://ellislab.com/codeigniter/user-guide/helpers/url_helper.html)
返回配置文件中指定的站点URL。 index.php 文件(或您在配置中设置为网站index_page的任何内容) 文件)将被添加到URL,您传递给的任何URI段也将添加到URL 函数和配置文件中设置的url_suffix。
我们鼓励您在需要生成时随时使用此功能 本地网址,以便您的网页在您的网站上变得更加便携 网址更改。
可以选择将段作为字符串或字符串传递给函数 阵列。这是一个字符串示例:
echo site_url(“news / local / 123”);上面的例子将返回 类似的东西:
http://example.com/index.php/news/local/123
以下是作为数组传递的段的示例:
$segments = array('news', 'local', '123'); echo site_url($segments);
返回您的站点基本URL,如配置文件中所指定。例如:
echo base_url();
此函数返回与site_url相同的内容,没有 index_page或url_suffix被追加。
与site_url一样,您可以将字符串或数组提供。 这是一个字符串示例:
echo base_url("blog/post/123");
上面的示例将返回类似于:
的内容http://example.com/blog/post/123
这很有用,因为与site_url()不同,您可以为a提供字符串 文件,例如图像或样式表。例如:
echo base_url("/_user_guide_src_ci/images/icons/edit.png");
这会给你类似的东西:
http://example.com/images/icons/edit.png
答案 1 :(得分:1)
这正是配置文件中基本URL的用途。您之后唯一需要担心的是您的相对URL,您甚至可以通过在config文件夹中创建新文件夹来设置不同的环境
例如,如果我直接在配置文件夹
中设置我的config.php$config['base_url'] = 'http://localhost/hello';
然后基本网址总是http:// localhost / hello现在让我说我有我的家庭开发环境和生产环境。如果我将config.php复制到名为production的config内的文件夹中,那么application / config / production / config.php将基本URL设置为:
$config['base_url'] = 'http://www.example.com/hello';
然后在我的index.php中设置:
define('ENVIRONMENT', 'production');
到处都需要改变环境Codeigniter会为我改变它。所以在实际网站上我使用生产环境,在家里我将环境改为开发,CI为我工作。
然后在你的代码中使用base_url()来建立你的链接。
例如:
<a href="<?=base_url();?>hello_world">Hello World</a>
将产生:
//at home:
http://localhost/hello_world
//in production:
http://www.example.com/hello_world
有意义吗?