在Codeigniter中重定向URL

时间:2014-08-20 05:36:33

标签: php asp.net .htaccess codeigniter redirect

我在codeigniter中开发了一个模块,URL为:

http://localhost/bwn/index.php/track/track/click

http://localhost/bwn/index.php/track/track/view

http://localhost/bwn/index.php/track/track/pass_thru

我还有一些在asp中开发的遗留应用程序,现在我需要重定向到我的新模块的URL数量,所以我希望下面3个链接应该重定向到我在CI中开发的新模块。

http://localhost/track/click_thru.asp

http://localhost/track/view_tracker.asp

http://localhost/track/pass_thru.asp

这可能在Codeigniter中,或者我应该在.htaccess中进行吗?

4 个答案:

答案 0 :(得分:0)

原始PHP

header("Location: http://google.com, TRUE, 302"); 

CI

$this->output->set_header("Location: http://google.com, TRUE, 302"); 

答案 1 :(得分:0)

ASP和PHP完全分开。因此,您的codeigniter应用程序无法将.asp文件重定向到.php

Codeigniter - >笨

在Codeigniter中,您可以在 routes.php 文件中重新路由网址。

例如 routes.php

$route['hello'] = "goodbye";

会将/hello重新路由到goodbye控制器。这是重新路由,而不是重定向。

Codeigniter - > ASP

您可以将控制器重定向到特定的URL。 (即Codeigniter - > ASP)。这是301重定向。

例如在您的控制器中

redirect('/track/pass_thru.asp', 'location', 301);

但是,codeigniter无法将您的asp文件重定向到codeigniter。

Asp - >笨

1)在您的原始.asp文件中,您可以创建重定向

e.g 的 /track/pass_thru.asp

<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","/bwn/index.php/track/track/pass_thru"
%>

2)或者您可以通过.htaccess完成这些重定向

Redirect 301 /track/pass_thru.asp /bwn/index.php/track/track/pass_thru

答案 2 :(得分:0)

在route.php中

$route['default_controller'] = "home";
$route['404_override'] = 'errors';

和htaccess

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
rewriteRule ^(([a-z0-9\-]+/)*[a-z0-9\-]+)$ $1/ [NC,R=301,L]

这些更改和base_url的设置为我解决了这个问题

答案 3 :(得分:0)

我认为没有必要对routes.php或.htaccess文件进行更改,我们可以使用重定向方法重定向任何地方,只需要提供完整路径。

    redirect('http://localhost/track/click_thru.asp');