2014-01-23 51 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

相關問題