我在一个子目录中的godaddy上安装了Codeigniter,网址是http://westlinebuilders.com/westlinecrm/
登录页面打开正常,但是当我点击登录按钮或者我访问任何其他控制器时它显示我没有指定输入文件。我在westlinebuilders.com/westlinecrm目录中没有任何.htaccess文件,我尝试创建新的htaccess文件并将其放在westlinecrm目录中,并按照如何使用谷歌搜索修复没有文件输入错误的说明,但直到现在都没有运气,可以有人请帮帮我吗?
我的verifylogin.php控制器代码是
<?php if ( ! defined('BASEPATH')) exit('No direct script access
allowed');
class VerifyLogin extends CI_Controller {
function __construct() { parent::__construct();
$this->load->model('user','',TRUE); }
function index() { //This method will have the credentials
validation $this->load->library('form_validation');
$this->form_validation->set_rules('email', 'Email', 'required');
$this->form_validation->set_rules('password', 'Password',
'trim|required|xss_clean|callback_check_database');
if($this->form_validation->run() == FALSE) {
//Field validation failed. User redirected to login page $this->load->helper('url');
$this->load->helper('html'); $this->load->view('templates/header');
$this->load->view('templates/menu');
$this->load->view('client/loginform'); $this->load->view('templates/footer'); } else {
//Go to private area
redirect('summary', 'refresh'); }
}
function check_database($password) { //Field validation
succeeded. Validate against database $username =
$this->input->post('email');
//query the database $result = $this->user->login($username,
$password);
if($result) {
$sess_array = array();
foreach($result as $row)
{
$sess_array = array(
'id' => $row->id,
'email' => $row->email1
);
$this->session->set_userdata('logged_in', $sess_array);
}
return TRUE; } else {
$this->form_validation->set_message('check_database', 'Invalid username or password');
return false; } } } ?>
答案 0 :(得分:7)
我在godaddy的子域中运行codeignitor。我尝试了上面的所有解决方案。但它不起作用。对我而言RewriteRule
会产生问题。
RewriteRule
RewriteRule ^index.php/(.*)$ [L]
更正了RewriteRule
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
所以工作.htaccess
代码如下。
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
</IfModule>
答案 1 :(得分:1)
我使用以下.htaccess
规则
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /crm/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^index.php/(.*)$ [L]
</IfModule>
我创建了一个子域名,将所有模型文件的第一个字符重命名为小写,现在正在工作
答案 2 :(得分:1)
使用此功能覆盖项目根文件夹中.htaccess文件的内容。
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
这会解决它。大多数情况下,导致它的是csrf。我相信你在配置文件中将它设置为TRUE。
让我知道它现在是否正常工作。
答案 3 :(得分:-1)
http://westlinebuilders.com/westlinecrm/index.php/verifylogin
你的url解析方法wrong.try使用
http://westlinebuilders.com/westlinecrm/verifylogin
为什么不使用简单的.htaccess代码......
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /westlinecrm/index.php?/$1 [L]
您的代码上的另一个问题。应用评论错误
function index() { //This method will have the credentials
validation $this->load->library('form_validation');
正确的方式
function index() { //This method will have the credentials
validation
$this->load->library('form_validation');