htaccess将旧的php文件重写为CodeIgniter文件

时间:2017-04-20 15:22:06

标签: .htaccess codeigniter

我尝试使用.htaccess将旧网站文件重定向到新的CodeIgniter网站。

所以,我的旧文件

www.mysite.com/news/new?id=123

必须重定向到

www.mysite.com/news/new/123

目前,我的.htaccess内部通常包含删除index.php的代码,但工作正常。

#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^(.*)$ index.php?/$1 

但是当我尝试旧文件重定向时,没有任何作用。 我认为问题是关于CodeIgniter的,因为如果我做一个简单的重定向到外部文件,比如phpinfo.php它工作正常,但如果尝试重定向到index.php(CodeIgniter)它没有加载index.php但是尝试加载其他内容。如果我删除.htaccess的{​​{1}}代码,也会这样做(见上行)。

所以,

index.php

RewriteRule news/new.php phpinfo.php [L]  # it works

2 个答案:

答案 0 :(得分:0)

Codeigniter使用REQUEST_URI Apache变量,它不能随RewriteRule一起更改而且没有重定向。因此,您可以在新闻控制器中使用 _remap 功能来调用自定义方法。

使用htaccess的其他方式是 enabling query string

答案 1 :(得分:0)

尝试 RewriteRule news/new\?id=(.*)$ index.php/news/new/$1 [L]