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



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附加排序和排序变量时,我新创建的"漂亮URL"再次变得丑陋,例如:

www.mysite.com/brands/brandName/product_show=20&product_sort=排序价格描述&第2页

显然,如果没有这些额外的变量,页面将无法运行。我想可以更改我的RewriteRule以包含这些内容,比如:

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

但这还是有点难看。

有没有办法隐藏这些变量,使其不显示在URL栏中?你如何处理多页的产品目录?

您可以使用此.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,带有新的变量。但在这种情况下,您也可以更改名称。

最新更新