我正在使用Codeigniter3.0.6,并且我正确设置表单操作,当我提交表单时,它直接进入localhost主页,我的代码是以下方式
我设置了$config['base_url'] = 'http://localhost:8081/consultant';
因为没有它,基本网址返回就像http://::1/consultant
一样this question
我的观点
<form role="form" action="<?=base_url();?>login/auth" method="post" class="login-form" id="login-form">
<div class="form-group">
<label class="sr-only" for="form-username">Username</label>
<input type="text" name="form-username" placeholder="Username..." class="formusername form-control" id="form-username">
</div>
<div class="form-group">
<label class="sr-only" for="form-password">Password</label>
<input type="password" name="form-password" placeholder="Password..." class="form-password form-control" id="form-password">
</div>
<button type="submit" class="btn">Sign in!</button>
</form>
我在检查元素时使用了base_url('login/auth')
和site_url('login/auth');
,它显示了正确的网址,如http://localhost:8081/consultant/login/auth
,但是应用程序会转到localhost主页。
答案 0 :(得分:0)
你有你的htaccess文件吗? 如果没有,你需要使用
<form action="<?= base_url('index.php/login/auth')?>" method="post">
如果是的话你是对的
<form action="<?= base_url('login/auth')?>" mehtod="post">
以htaccess文件为例
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /consultant/index.php?/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /consultant/index.php
</IfModule>
答案 1 :(得分:0)
最后我找到了答案。在Codeigniter 2中,htaccess文件RewriteRule就像
RewriteRule ^(.*)$ /index.php/$1 [L]
但在Codeigniter 3中,您需要将项目名称放在index.php之前。例如我的是:“顾问”
RewriteRule ^(.*)$ /consultant/index.php/$1 [L]
并记住你将base_url设置为bellew:
$config['base_url'] = 'protocol://localhost/projectname';
我的情况如下:
$config['base_url'] = 'http://localhost:8081/consultant';
它工作正常。