使用mod rewirite时是否可以隐藏QSA变量

时间:2015-02-09 15:43:00

标签: .htaccess mod-rewrite

我在htaccess文件中的规则

RewriteRule ^brands/([^/.]+)/?$ browse-brand.php?brand=$1 [L,QSA]

变得中等丑陋 的 www.mysite.com/brands.php?brand=$brandName 变得更有吸引力 的 www.mysite.com/brands/brandName /

每个品牌页面用于显示与该品牌相关的数百种产品,因此可以拆分为页面,可以过滤显示20/50/100产品或按价格/畅销书等订购

因此,当使用QSA附加排序和排序变量时,我新制作的“漂亮网址”会再次变得难看,例如:

www.mysite.com/brands/brandName/product_show=20&product_sort=sortpricedesc&page=2

显然,如果没有这些额外的变量,页面将无法执行。我想可以改变我的RewriteRule以包含这些,如下所示:

www.mysite.com/brands/brandName/20/sortpricedesc/2 /

但这仍然有点难看。

有没有办法隐藏这些变量在URL栏中显示?您如何处理多页产品目录?

1 个答案:

答案 0 :(得分:0)

您可以使用此.htaccess:

RewriteRule ^brands/([^/.]+)/([^/.]+)/([^/.]+)/([^/.]+)/?$ browse-brand.php?brand=$1&product_show=$2&product_sort=$3&page=$4 [L,QSA]
RewriteRule ^brands/([^/.]+)/?$ browse-brand.php?brand=$1 [L,QSA]

最终页面与新变量browse-brand.php相同。但在这种情况下你也可以更改名称。