如何用.htaccess移除URL特定字符串(CodeIgniter 4环境)
移除URL路径中的'myapp'字符串(CodeIgniter 4 .htaccess修复方案)
你需要将https://test.app/myapp/login这类URL里的myapp路径段移除,最终跳转至https://test.app/login,但之前的.htaccess配置未生效——问题出在你写的规则是处理查询参数里的myapp,而你的myapp是在URL路径中,完全不对路。
下面是适配CodeIgniter 4的正确.htaccess配置:
RewriteEngine On # 301重定向移除路径中的myapp RewriteRule ^myapp/(.*)$ /$1 [R=301,L] # CodeIgniter 4 核心路由规则 RewriteCond $1 !^(index\.php|resources|robots\.txt|assets) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA]
关键说明:
- 重定向规则必须放在CI4路由规则前面,
L标志会让这条规则执行后直接终止后续规则,避免冲突。 RewriteRule ^myapp/(.*)$ /$1 [R=301,L]会匹配所有以myapp/开头的路径,保留myapp/后面的内容,重定向到根路径下的对应地址。- 测试阶段建议把
R=301改成R=302临时重定向,防止浏览器缓存错误的重定向规则,确认生效后再改回301永久重定向。 - 同时检查CodeIgniter 4的
app/Config/App.php文件,确保$baseURL设置为https://test.app/,不要包含myapp。
内容的提问来源于stack exchange,提问作者unice
相关产品推荐
相关产品推荐

