2014-01-23 47 views
0

我花了很多小时来解决我的问题,但它不会工作 请帮助我,自12月底以来我一直在努力(证明在这里:http://forum.php.pl/index.php?showtopic=225498&hl=将旧的动态页面重定向到一个友好的网址(Codeigniter)

我想基于CI

我所做的还没有规则来重定向从旧的静态页面从我的旧网页重定向用户,基于纯PHP,没有CI, 到我的新的一页页面,但我有基于ID和其他参数重定向动态页面的问题。

我的.htaccess文件看起来像现在:

RewriteCond %{REQUEST_URI} ^/billboard_lokalizacja\.php$ 
RewriteCond %{QUERY_STRING} ^site=lokalizacje&id=([0-9]*)$ 
RewriteRule ^(.*)$ tablice_reklamowe/billboard_id/ [R=302,L] 

当我输入网址:

my-server/billboard_lokalizacja.php?site=lokalizacje&id=13 

它重定向我:

my-server/tablice_reklamowe/billboard_id/?site=lokalizacje&id=13 

,但我想重定向来自这个网址:

my-server/billboard_lokalizacja.php?site=lokalizacje&id={NUMBER} 
my-server/billboard_lokalizacja.php?site=lokalizacje&id={NUMBER}&variable=value 
my-server/billboard_lokalizacja.php?site=lokalizacje&id={NUMBER}&variable=value&variable2=value2 

这一个:

my-server/tablice_reklamowe/billboard_id/{NUMBER} 

请。给我一些建议,它现在很难理解,但我需要尽快运行新页面。

我想我可以在我的控制器和使用规则做出了一些重定向方法是这样的:

RewriteCond %{REQUEST_URI} ^/billboard_lokalizacja\.php$ [NC] 
RewriteCond %{QUERY_STRING} ^site=lokalizacje&id [NC] 
RewriteRule ^(.*)$ tablice_reklamowe/redirect/ [R=302,L] 

但我Tablice_Reklamowe_Controller /重定向($ string)方法不会得到访问$字符串。

$字符串为空, current_url()只返回http://my-server/tablice_reklamowe/redirect.

如何解决我的问题?

回答

0

所以,我知道你正在寻找一个.htaccess解决方案,但我就是这样做的一个非常简单的,SEO友好的方式(我不想惹.htaccess文件的巫术):

<?php 

class Old_controller extends MY_Controller 
{ 
    function __construct() { 
     parent::__construct(); 
     $this->load->helper('url'); 
     redirect(str_replace('old_controller', 'new_controller', "http://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}"), 'location', 301); 
     exit(); 
    } 
} 

来源:StackOverflow Question + Answer

相关问题