协议相对网址不起作用

时间:2012-07-09 08:02:23

标签: php codeigniter url codeigniter-2

这是我的基本网址:

$config['base_url'] = '//'. $_SERVER['HTTP_HOST']. 
str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);

我的观点:

<form action="<?php echo $this->config->base_url().'index.php/certification/add/'; ?>" 
method="post" accept-charset="utf-8" onsubmit ='return false;'>

结果如下:

<form action="//localhost/php/index.php/localhost/php/index.php/certification/add/" 
method="post" accept-charset="utf-8" onsubmit="return false;">  

为什么会这样? (Read this如果您不知道协议相对URL是什么。

3 个答案:

答案 0 :(得分:0)

您永远不会将前缀http或https协议设置为base_url。因此,表单操作url将按预期开始。

答案 1 :(得分:0)

看起来您没有正确获取基本网址。类似的问题已经回答here

答案 2 :(得分:0)

$config['base_url']不应包含文件/脚本路径。如果你自己回应它,在你的情况下,你应该得到'// localhost / php /'

您想要使用其他SCRIPT_NAME内容做什么?

如果我理解正确,你会想要摆脱那部分,然后使用:

<form action="<?php echo $this->config->base_url('index.php/certification/add/')"

(我相信它会在你从配置中删除脚本部分后立即使用它,但我认为这是“正确的CI方式”)