我正在尝试重写 URLS,以便 /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 https://gist.github.com/keithmorris/3023560
这包括我在所有项目中使用的相当标准的 htaccess 文件。然后,您可以使用 CI 路由功能来定义不同位的去向。
记住CI你可以通过额外的url 中的元素,例如 example.com/foo1/foo2/foo3/query1/query2。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)