我的旧网站没有使用框架,而.htaccess工作正常,请查看下面的.htaccess代码:
RewriteRule ^([a-zA-Z0-9_-]+)\.html solution.php?solution=$1 [L]
所以关键是如果它检测到' .html'在url中,然后用户被重定向到传递任何GET参数的PHP页面。
最近,我已将我的网站转换为使用代码点火器框架,因此我已将我的.htaccess代码转换为以下内容:
RewriteRule ^([a-zA-Z0-9_-]+)\.html index.php/solution/index/$1 [L]
我最终得不到一个页面。但是,如果我仍然手动输入
http://myhost/index.php/solution/index/xxx
然后它可以工作,但如果我输入
http://myhost/xxx.html
然后它没有。我的目标是维护原始网址,因为它已被Google编入索引,而且我不希望我网站的先前访问者找不到“未找到的网页”。对于我以前的链接。
我需要一个可能有帮助的修复或建议。期待你的回复。感谢。
答案 0 :(得分:1)
在将您的网站转换为使用CI时,您似乎错过了很多东西。阅读URL suffixes并注意您可以使用routes重定向您使用控制器无法正常处理的任何内容。
您还需要修改.htaccess以摆脱index.php
,因为只修改配置文件不起作用 - 有很多相关资源,例如this one。
答案 1 :(得分:0)
按照codeigniter用户指南:http://ellislab.com/codeigniter/user-guide/general/urls.html
特别在以下部分中:
如果仍有问题,请查看此维基:
https://github.com/EllisLab/CodeIgniter/wiki/Removing-index.php-in-codeigniter-xampp-for-windows
或
How do I write a .htaccess file to make CodeIgniters URL routing work?