当使用mod_rewrite 时,除了必须定义一个重定向状态代码作为参数以外,重定向的实现与URL重写非常类似。当初始请求为foo.php时,一下的规则用一个301重定向至bar.php:
RewriteRule RewriteRule ^foo\.php$ /bar.php [R=301,L]
首先请求:foo.php;在响应的HTTP报头中得到一个301重定向代码,指定bar.php为新位置。然后web客户端请求bar.php,并通过更新显示在地址栏中的URL,告知用户加载了新的URL地址。
在php中,通过使用header()函数来添加HTTP报头,从而实现重定向。如果想把foo.php用301重定向至bar.php,foo.php将添加如下所示:
Header(‘HTTP/1.1 301 Move Permanently’);
Header(‘Location: ’);
?>