mod 重写查询字符串

mod 重写查询字符串

假设我想http://domain.com/product/?id=123成为http://domain.com/product/foo,我该如何在 中做到这一点.htaccess?我尝试了类似的方法,但没有成功:

RewriteBase /fisher
RewriteCond %{QUERY_STRING} ^id=123$    [NC]
RewriteRule ^/product$  /product/foo    [NC,L,R=301]

有什么建议吗?

注意:我不需要捕获id参数的值,因为我不会在新 URL 中使用它。

更新 1:

RewriteEngine On
RewriteBase /fisher

RewriteCond %{QUERY_STRING} ^id=123 [NC]
RewriteRule ^product/$  /product/foo    [NC,L,R=301]
  1. 显示 RewriteEngine 和 RewriteBase
  2. $在 RewriteCond 中删除
  3. /在 RewriteRule 中删除

当我访问 时http://localhost/fisher/product/?id=123,什么也没有发生。URL 保持不变。

答案1

我建议这样做。与你的情况类似,但有一些细微的差别。即$id=123重写条件并在/之后添加^product重写规则

  RewriteCond %{QUERY_STRING} ^id=123 [NC]
  RewriteRule ^product/$ /product/foo [NC,L,R=301]

相关内容