【问题标题】:Redirect the URL in Codeigniter在 Codeigniter 中重定向 URL
【发布时间】:2018-05-16 13:46:41
【问题描述】:

我在codeigniter中开发了一个模块,网址如下:

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 中实现?

【问题讨论】:

标签: php asp.net .htaccess codeigniter redirect


【解决方案1】:

原始 PHP

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

CI

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

【讨论】:

    【解决方案2】:

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

    代码点火器 -> 代码点火器

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

    例如在 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 文件中,您可以创建重定向

    例如 /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
    

    【讨论】:

      【解决方案3】:

      在 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 的这些更改和设置为我解决了这个问题

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 2013-04-30
          • 2023-03-18
          • 1970-01-01
          • 1970-01-01
          • 2018-02-15
          • 2014-04-01
          • 1970-01-01
          • 2015-11-12
          • 1970-01-01
          相关资源
          最近更新 更多