Codeigniter base_url()在敲打?

时间:2012-07-28 01:18:12

标签: codeigniter base-url

我尝试使用以下代码设置基本日志:

<?=form_open(base_url() . 'main/login'); ?>

然而,在提交表单后,网址会显示:

example.com/main/http//example.com/http//example.com/main/login

所以我猜本质上由于某种原因在控制器/方法声明之前打印了两次base-url。如果我清除配置文件中的基本URL值,则应用程序正常工作。然而,我对可能导致这种情况的原因感到好奇。有关其他信息,我正在使用虚拟主机处理xampp,并且我使用位于文档根目录的.htaccess文件进行了mod-rewrite。

4 个答案:

答案 0 :(得分:2)

当您使用表单助手时,CodeIgniter会自动将base_url添加到表单的操作中。

例如,您可以使用:

<?=form_open('main/login'); ?>

将产生: HTTP // example.com /主/登录

正确的网址!很简单! :d 更多信息: http://codeigniter.com/user_guide/helpers/form_helper.html

答案 1 :(得分:1)

application / config 下的文件config.php具有以下设置:

$config['base_url'] = '';

给它文件夹/目录路径。例如:

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

不要忘记提及协议(http://)。或者,尝试使用site_url()方法而不是base_url()进行表单打开。如果使用form_open()函数,请跳过它:

<form action="<?php echo site_url('main/login'); ?>"> ... </form>

或者

<?php form_open('main/login'); ?>

获取更多帮助:http://codeigniter.com/user_guide/helpers/url_helper.html

不确定您使用的.htaccess文件。但这可能就是答案codeigniter: why is that when i echo base_url() in an href attribute of an anchor tag, it echoes twice

答案 2 :(得分:0)

通过参数尝试:

<?=form_open(base_url('main/login')); ?>

<?=form_open site_url('main/login')); ?>

为了追加前缀

答案 3 :(得分:0)

您可以使用

<?php echo form_open(base_url(main/login)); ?>

你必须使用“echo”而不是因为它在某些浏览器中不起作用....