我的.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)
在他们的地址栏中?
答案 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。