2014-09-23 75 views

回答

0

如果你想硬编码的URL到您的.htaccess文件,你可以简单地设置静态重定向:

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{QUERY_STRING} ^id=320(.*)$ 
    RewriteRule /website$ /terna [L,NC] 

    RewriteCond %{QUERY_STRING} ^id=321(.*)$ 
    RewriteRule /website$ /somewhere-else [L,NC] 
</IfModule> 

不过,如果你想让它更灵活(也许让人们改变自己重定向或类似),你需要将其存储在数据库中(redirects表的website_id, redirect_url列),那么当有人询问,做到这一点(伪代码):

if (isset(queryString['id'])) 
    query(SELECT redirect_url FROM redirects WHERE website_id = queryString['id']) 
    redirectTo(redirect_url); 
    exit 

在PHP中,实际的重定向会做w第header('Location: ' . $redirect);,查询部分应该很容易。

+0

如果我在你的例子中使用.htaccess,但页面是动态生成的? – TonyS 2014-09-23 10:02:14

+0

您可以等到页面生成后手动添加htaccess规则,也可以使用PHP选项等动态选项。 htaccess不能做动态重定向,所以你需要硬编码每一个 – Joe 2014-09-23 10:03:26