2013-12-19 29 views
0

我想知道是否有可能將一個url重定向到從數據庫中獲取的另一個特定的url?例如,如果輸入www.mydomain.com/page,它將重定向到www.mydomain.com/folder/page,如果輸入www.mydomain.com/page2,它將重定向到www.mydomain.com/folder/page2。通過mysql數據庫重定向多個url?

在一分鐘我只是在我的404頁面重定向與此代碼:

<?php 
$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 
$page= 'http://www.mydomain.com/page'; 

if ($url == $page){ 
    header("HTTP/1.1 301 Moved Permanently"); 
    header('Location: http://www.mydomain.com/folder/page') ; 
} 
?> 

,我已經與多個其他頁面完成這一點。

感謝您的幫助!

+1

有可能你的表名稱替換your_table。只需從數據庫獲取URL並傳遞到位置標題。或者這不是你在問什麼? – puelo

回答

1

當然

你必須首先從數據庫
然後使用PHP的header功能

重定向它獲得url
$result = mysql_query('SELECT * FROM `your_table` WHERE `token`= $token'); 
$row = mysql_fetch_assoc ($result); 
header("Location: page/{$row['url']}"); 

與包含重定向規則

但是如果你的重定向規則總是由在網址前面加上/page,再檢查其他答案當然

+0

......並且考慮使用'PDO'或者'MySQLi';當然是 –

+0

。我推薦PDO –

1

將這些添加到您的.htaccess文件中。它對我來說工作得很好。

RedirectMatch ^/page$ /folder/page 
RewriteRule ^/page /folder/page [L,R=301] 

RedirectMatch ^/page2$ /folder/page2 
RewriteRule ^/page2 /folder/page2 [L,R=301] 
1

你只需要這條規則在你的根.htaccess

RewriteEngine On 

RewriteRule ^([^/]+)/?$ /folder/$1 [L,R=302]