我是codeIgniter的新手。我的索引文件中有一些链接。 我已经从url中删除了index.php,所以现在url看起来像
http://localhost/app/Loader/demo_page
这是我的Loader代码:
class Loader extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->helper('url');
}
public function index()
{
$this->load->view('header');
$this->load->view('center');
$this->load->view('footer');
}
public function demo_page()
{
$this->load->view('demo');
}
}
当我点击此链接时,我找不到错误。
现在该怎么办?
我想从url中删除控制器名称,并希望仅显示相似的域名/ app / mydemopage.php。 请帮忙。
答案 0 :(得分:1)
您需要URL Rewrite模块才能工作。 如何使其工作取决于您使用的Web服务器。
对于Apache,请编辑httpd.conf
并取消注释(删除前导#
)以下行,然后重新启动网络服务器。
LoadModule rewrite_module modules/mod_rewrite.so
在CodeIgniter根文件夹中添加/编辑.htaccess
文件并插入此文件。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
如果此处不允许使用RewriteEngine错误,请确保CodeIgniter的Web根文件夹允许在您的网络服务器配置FileInfo
中覆盖httpd.conf
。
AllowOverride FileInfo
答案 1 :(得分:1)
在.htaccess文件中添加以下行。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
答案 2 :(得分:1)
您可以使用以下示例更改路线文件。在字符串中我传递控制器和函数(方法)名称。在$ route数组中,我正在传递一个漂亮的名字。
#Route file path : CI_project/applications/config/routes.php
$route['default_controller'] = "Dashboard";
$route['contact-us'] = "dashboard/contact_us";
但请记住,如果你想让上面的代码工作,你必须启用重写模块并在.htaccess中提供此代码。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /prjectName/
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
# Submitted by: Pawan Nagar
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>