Php 将旧URL重定向到新URL[codeigniter.htaccess]

Php 将旧URL重定向到新URL[codeigniter.htaccess],php,apache,.htaccess,codeigniter,redirect,Php,Apache,.htaccess,Codeigniter,Redirect,我的旧网站有问题,所以我编写了一个新的。 但我无法将我的旧URL重定向到新URL。 我的旧URL看起来像: http://sample.com/?m=news&e=view&id=66 它已经在谷歌上分享和搜索引擎优化。但我已完成删除主机中的旧源。 我希望当有人点击该链接时,它将重定向到我的新页面: http://sample.com/en/news/redirect-url-66.html 但idk如何为htaccess编写规则。谁能告诉我该怎么做。 这是我的htacces

我的旧网站有问题,所以我编写了一个新的。 但我无法将我的旧URL重定向到新URL。 我的旧URL看起来像:

http://sample.com/?m=news&e=view&id=66
它已经在谷歌上分享和搜索引擎优化。但我已完成删除主机中的旧源。 我希望当有人点击该链接时,它将重定向到我的新页面:

http://sample.com/en/news/redirect-url-66.html
但idk如何为htaccess编写规则。谁能告诉我该怎么做。 这是我的htaccess(默认的CodeIgniter htaccess):

旧网址:

http://sample.com/?m=news&e=view&id=66
新网址:

http://sample.com/index.php/en/news/redirect-url-66.html 
.htaccess

RewriteEngine on 
RewriteCond $1 !^(index\.php|resources|robots\.txt) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

RewriteCond  %{QUERY_STRING} m=([a-z]+) $1
RewriteCond  %{QUERY_STRING} e=(view) $2
RewriteCond  %{QUERY_STRING} id=([0-9]+) $3 
RewriteRule ^(.*)$ index.php/en/%1/redirect-url-%3.html?
希望对您有用

旧url:

http://sample.com/?m=news&e=view&id=66
新网址:

http://sample.com/index.php/en/news/redirect-url-66.html 
.htaccess

RewriteEngine on 
RewriteCond $1 !^(index\.php|resources|robots\.txt) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

RewriteCond  %{QUERY_STRING} m=([a-z]+) $1
RewriteCond  %{QUERY_STRING} e=(view) $2
RewriteCond  %{QUERY_STRING} id=([0-9]+) $3 
RewriteRule ^(.*)$ index.php/en/%1/redirect-url-%3.html?

希望对你有用你在用WordPress吗?因为如果你这样做了,有很多插件可以帮助你在服务器级别进行自动重定向,而不需要你自己做所有的重定向,这对于大型网站来说可能是一个麻烦…

你在使用WordPress吗?因为如果你这样做了,有很多插件可以帮助你在服务器级别进行自动重定向,而不需要你自己进行所有重定向,这对于大型网站来说可能是一个麻烦…

对不起,先生,我忘了编辑我的帖子。我想重定向的新URL是:内部服务器错误,先生。当我尝试你的代码时,我所有的链接,包括我的主页:都是错误的。我只想重定向只有一个链接,而不是所有的链接,在我的新网站的其他链接仍然使用。我还尝试使用控制器重定向。但我不能命名controller=?m=news&e=view&id=66。我没有工作,当我点击时,它会重定向到主页。我想问题是旧的URL从一开始就有“?”字符。我试过了,它不能与codeigniter一起工作。URL始终在站点URL之后标识“?”字符,这是一个命令,类似于active default\u controller=>重定向到主页。在codeigniter中,uri的顺序是:controller/method/parameter,因此在您的例子中,en/news/redirect-url-66.html是这样解析的:“en”是控制器,“news”是方法,“redirect-url-66.html”是参数,我不确定我是否理解了您最后的评论,但这就是ci的工作方式对不起,先生,我忘了编辑我的帖子。我想重定向的新URL是:内部服务器错误,先生。当我尝试你的代码时,我所有的链接,包括我的主页:都是错误的。我只想重定向只有一个链接,而不是所有的链接,在我的新网站的其他链接仍然使用。我还尝试使用控制器重定向。但我不能命名controller=?m=news&e=view&id=66。我没有工作,当我点击时,它会重定向到主页。我想问题是旧的URL从一开始就有“?”字符。我试过了,它不能与codeigniter一起工作。URL始终在站点URL之后标识“?”字符,这是一个命令,类似于active default\u controller=>重定向到主页。在codeigniter中,uri的顺序是:controller/method/parameter,因此在您的例子中,en/news/redirect-url-66.html是这样解析的:“en”是控制器,“news”是方法,“redirect-url-66.html”是参数,我不确定我是否理解了您最后的评论,但这就是ci的工作方式