![mod 重写查询字符串](https://linux22.com/image/609597/mod%20%E9%87%8D%E5%86%99%E6%9F%A5%E8%AF%A2%E5%AD%97%E7%AC%A6%E4%B8%B2.png)
假设我想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]
- 显示 RewriteEngine 和 RewriteBase
$
在 RewriteCond 中删除/
在 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]