.htaccess - 重写然后隐藏部分网址?

时间:2009-01-26 22:17:46

标签: .htaccess

我的.htaccess中有以下RewriteRule:

RewriteRule ^products/([A-Za-z0-9-\s\@]+)/([A-Za-z0-9-\s\@]+)/?$ /store/products/product.php?prod=$1&src=$2 [L,QSA]

需要一个网址,例如:

http://example.com/store/products/lawnmower/blogThatLovesUs

并在此处显示页面:

http://example.com/store/products/product.php?prod=lawnmower&src=blogThatLovesUs

有没有办法可以编辑这个RewriteRule,以便用户只看到

http://example.com/store/products/lawnmower/(sans blogThatLovesUs) 

在他们的地址栏中?

1 个答案:

答案 0 :(得分:1)

当然,您可以这样做,但在此过程中您将丢失您的会员ID(blogThatLovesUs)。您可以使用原始URL重定向,然后让结果页面(product.php)在会话中缓存会员值,然后在PHP中使用标题重定向(带有header())到更新的URL而不使用会员价值。这有意义吗?

我想说明一点:

网址http://photojojo.com/store/products/lawnmower/blogThatLovesUs

通过RewriteRule你得到:

网址http://photojojo.com/store/products/product.php?prod=lawnmower&src=blogThatLovesUs

此时,在product.php中,您将blogThatLovesUs存放在某个地方的会话中,然后:

<?php
    header("Location: http://photojojo.com/store/products/lawnmower/");
?>

使浏览器获得您想要的URL。