我正在使用codeigniter开发一个简单的php项目。 我的htaccess看起来像这样
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
我的基本网址是
$config['base_url'] = 'http://localhost/Achalaweerasooriya.github.io';
我的索引页面是
$config['index_page'] ="";
我的主控制器类是LoginController。
当我运行项目时,它调用登录控制器,网址为
http://localhost/Achalaweerasooriya.github.io/index.php
显示登录表单。当我输入登录详细信息并单击登录时,它应验证用户。我为登录按钮提供的href是
href="<?php echo base_url('');?>LoginController/validate"
然后网址显示为
"http://localhost/Achalaweerasooriya.github.io/LoginController/validate"
这在逻辑上是正确的。
但是当我点击具有正确用户名和密码的登录按钮时,会生成404错误,说明找不到对象 错误说 “没找到对象!
在此服务器上找不到请求的URL。如果您手动输入了URL,请检查拼写,然后重试。
如果您认为这是服务器错误,请与网站管理员联系。
错误404
本地主机 Apache / 2.4.17(Win32)OpenSSL / 1.0.2d PHP / 5.5.30“
但是如果我手动将index.php添加到url(然后url看起来像“http://localhost/Achalaweerasooriya.github.io/index.php/LoginController/validate”),则会显示正确的页面。 作为解决方案,我将index.php添加到基本URL,使其看起来像
$config['base_url'] = 'http://localhost/Achalaweerasooriya.github.io/index.php';
然后就像我使用了base_url();要求链接外部css和javascripts,他们就会停止响应。
请指出我正确的方向。谢谢。
答案 0 :(得分:0)
如果.htaccess文件正在运行,则删除与index.php相关的旧代码行并添加以下代码
或者只是将.htaccess留空并尝试下面的代码。它对我有用。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php?/$0 [QSA,L]
</IfModule>
答案 1 :(得分:0)
从$ config [&#39; base_url&#39;]中删除index.php并尝试此操作
http://addictors.in/remove-index-php-from-url-in-codeigniter/
并重启服务器