通过mysql数据库重定向多个URL?

时间:2013-12-19 10:44:25

标签: php mysql database .htaccess redirect

我想知道是否可以将网址重定向到另一个从数据库获取的特定网址?例如,如果输入www.mydomain.com/page,它将重定向到www.mydomain.com/folder/page,如果输入www.mydomain.com/page2,它将重定向到www.mydomain.com/folder/page2。

我刚刚在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' ) ;
}
?>

我也用其他多个页面完成了这个。

感谢您的帮助!

3 个答案:

答案 0 :(得分: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 :(得分:1)

您只需要在根.htaccess中使用此规则:

RewriteEngine On

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

答案 2 :(得分:1)

不确定

你必须先从数据库中获取网址 然后使用php的header函数重定向它

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

your_table替换为包含重定向规则的表名

但是,如果您的重定向规则始终包含在网址前添加/page,那么请检查其他答案