本文另外刊登于我的部落格: Hankz Blog
Codeigniter如果不调整设定,网址中会自带index.php
为了符合MVC架构,通常会将它去除,以下是处理步骤:
一、开启伺服器的mod_rewrite
这边我以Apache作为範例
开启httpd.conf,找到这行:#LoadModule rewrite_module modules/mod_rewrite.so
我们要取消注解,所以将这行前面的#去除
并重新启动Apache
二、 确认mod_rewrite是否启用
运行php函式phpinfo(),并开启该画面后
搜寻mod_rewrite
只要在loaded modules栏位内有找到mod_rewrite就代表启用成功
三、 编辑.htaccess档案
找到codeigniter根目录内的.htaccess档案(若没有该档案则建立一个),并在档案内加入以下内容:
RewriteEngine onRewriteCond $1 !^(index\.php)RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteCond $1 !^(index\.php|img|css|js|fonts|robots\.txt)RewriteRule ^(.*)$ index.php/$1 [L,QSA]
四、 修改config.php档案
找到application\config\config.php,并找到$config['index_page'] = 'index.php';
并改成:$config['index_page'] = '';
接下来你的网址就可以省略输入index.php了
五、环境
Windows 10
php 7.3.5
Apache 2.4.39
Codeigniter 3.1.6