php - htaccess 重写 URL 不适用于 codeigniter 代码
问题描述
我正在尝试重写 URL,以便 /foo -> index.php。
index.php 由 codeigniter 3 提供支持。 bar.php 是一个独立的 php 文件。
这是从我的 .htaccess 中截取的:
//Test 1. Bar.php displayed. This works as exptected.
RewriteRule ^/?foo1/?$ /bar.php [QSA,L]
//Test 2. Redirects succesfully to index.php. Works as expected.
RewriteRule ^/?foo2/?$ /index.php [R=301,QSA,L]
//Test 3. Goes to codeigniter 404 page and does NOT display the homepage.
Does not work as expected
RewriteRule ^/?foo3/?$ /index.php [QSA,L]
为什么测试 3 没有按预期显示?我的 codeigniter 代码中有一些东西在尝试重写 URL 时不起作用。任何想法如何解决这一问题?有解决方法吗?
全面披露:长期目标是能够拥有具有如下结构的 URL:example.com/foo1/foo2/foo3/?query1=xxxx&query2=yyyy 重写为 example.com/bar/bar1.php?queryA= foo2&queryB=foo3&query1=xxxx&query2=yyyy
这可以在codeigniter框架(route.php)而不是htaccess中“轻松”完成吗?从开发时间的角度来看,最好通过 .htaccess 让它工作。
解决方案
看看https://gist.github.com/keithmorris/3023560
这包括我在所有项目中使用的相当标准的 htaccess 文件。然后,您可以使用 CI 路由功能来定义不同位的位置。
请记住,使用 CI,您可以在 url 中传递其他元素,例如 example.com/foo1/foo2/foo3/query1/query2。
推荐阅读
- php - 在 WordPress 网站上添加登录功能并向用户显示特定内容
- python - 将进度条或仪表小部件添加到 PyQtGraph
- django - 如何从石墨烯返回自定义错误消息?
- excel - 使用 VBA 宏在 Excel 中的员工病假表
- postgresql - 如何获取PostgreSQL中的所有类别和子类别?
- maven - SkipException 在课前,双重测试用例被打印在范围报告中
- python - 编码的目标列只显示一个类别?
- html - Firefox 阻止加载 HTML iframe
- .net - dotnet ef 迁移添加引发异常
- c# - Azure Webjob:Git 直接克隆到远程