我正在为客户端使用Codeigniter编写Web应用程序,并使用其内部开发机器之一。由于安全限制,Web服务器端口仅在内部,不会暴露给外部世界,因此我必须通过SSH隧道访问它。所以我点击了这样的网络服务器:http://localhost/path_to_data。
我正在使用标准的Form Helper在Codeigniter中创建一个表单,唯一的问题是表单的操作指向Codeigniter配置文件中的框的位置。我无法更改此配置值,因为我们有内部开发人员也访问它,不会使用SSH隧道,因此他们通过“真实”URL来访问它。
有没有办法强制Codeigniter使用表单指向相对路径而不是完整路径?
答案 0 :(得分:0)
form_open()
使用config.php中设置的基本网址:$config['base_url']
。尝试根据$_SERVER['SERVER_NAME']
使其成为条件。这样,使用“http://demo.local”的内部开发人员以及使用“http://localhost/”的内部开发人员将能够根据他们访问服务器的方式查看正确的绝对URL。
$config['base_url'] = 'http://demo.local/' ;
if ($_SERVER['SERVER_NAME'] == 'localhost') {
$config['base_url'] = http://localhost/' ;
}
作为旁注,我注意到form_open()检查传递的参数是否是一个完整的URL(特别是如果它包含一个“://”),如果是,那么它将它设置为表单的动作而不是任何处理。因此,您可以调用form_open("http://localhost/form_submit")
并在不使用base_url的情况下按原样使用它。