0

我的旧网站没有使用框架,并且 .htaccess 运行良好,请查看下面的 .htaccess 代码:

RewriteRule ^([a-zA-Z0-9_-]+)\.html solution.php?solution=$1 [L]

所以关键是如果它在 url 中检测到“.html”,那么用户将被重定向到传递任何 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 

然后它没有。我的目标是维护原始 URL,因为它已被 Google 索引,并且我不希望我网站的以前访问者为我的旧链接获得“找不到页面”。

我需要一个可能有帮助的修复或建议。期待你的回复。谢谢。

4

2 回答 2

1

看起来您在将网站转换为使用 CI 时错过了很多东西。阅读有关URL 后缀的信息,并注意您可以使用路由来重定向您无法使用控制器正常处理的任何内容。

您还需要修改 .htaccess 以摆脱,index.php因为仅修改配置文件是行不通的 - 有很多关于此的资源,比如这个

于 2012-12-22T03:11:48.950 回答
0

遵循 codeigniter 用户指南:http ://ellislab.com/codeigniter/user-guide/general/urls.html

特别是在以下部分:

  1. 删除 index.php 文件
  2. 添加 URL 后缀

如果仍然有问题,请查看此 wiki:

https://github.com/EllisLab/CodeIgniter/wiki/Removing-index.php-in-codeigniter-xampp-for-windows

或者

如何编写 .htaccess 文件以使 CodeIgniters URL 路由工作?

于 2012-12-22T15:07:24.363 回答