CodeIgniter项目去除index.php后非主页URL访问返回404如何解决
问题修复方案
1. 修正根目录.htaccess文件内容
你当前使用的.htaccess规则是application目录下的限制访问配置,不能放在项目根目录使用,会拦截所有请求。
- 根目录的.htaccess替换为以下内容:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA]
- 原来的限制访问规则保留在
application文件夹下的.htaccess文件中即可,不要删除。
2. 开启Apache重写模块与目录权限配置
- 打开Xampp的
apache/conf/httpd.conf文件,查找LoadModule rewrite_module modules/mod_rewrite.so,去掉行首的#开启rewrite模块 - 找到你的虚拟主机配置,补充目录权限配置,修改
httpd-vhost.conf内容如下:
<VirtualHost *:80> DocumentRoot "C:/xampp/htdocs/Admin/" ServerName fitbit.now <Directory "C:/xampp/htdocs/Admin/"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>
核心是新增AllowOverride All配置,允许当前目录读取.htaccess规则,你之前未配置该项时.htaccess完全不生效,所以只有带index.php的地址能访问。
3. 修正域名一致性问题
你配置的虚拟主机域名是fitbit.now,但测试访问的是fit.now,请保持一致:要么修改虚拟主机的ServerName为fit.now,要么测试时统一用http://fitbit.now/Admin/dashboard访问。
4. 验证配置生效
修改完成后重启Xampp的Apache服务,清空浏览器缓存后再次测试不带index.php的地址即可正常访问。
内容的提问来源于stack exchange,提问作者abhishek
相关产品推荐
相关产品推荐

