我在.htaccess中使用以下代码
RewriteEngine on
RewriteCond %{QUERY_STRING} (?:^|&)prod=\d+(?:&|$) [NC]
RewriteRule ^dumbwaiters/proddetail\.php\?* https://www.example.com/dumbwaiters/compare-dumbwaiters/ [NC,R=301,L]
重定向到:
https://www.example.com/dumbwaiters/compare-dumbwaiters/?prod=143
但我不想尾随?/ prod = 143
知道我做错了吗?
答案 0 :(得分:0)
http://httpd.apache.org/docs/current/rewrite/flags.html#flag_qsd
当请求的URI包含查询字符串和目标URI时 没有,RewriteRule的默认行为是复制该查询 字符串到目标URI。使用[QSD]标志会导致查询字符串 被丢弃。
此标志在2.4.0及更高版本中可用。
因此,如果您的Apache版本足够,我认为以下未经测试的代码可以正常工作:
RewriteRule ^dumbwaiters/proddetail\.php.* https://www.example.com/dumbwaiters/compare-dumbwaiters/ [QSD,NC,R=301,L]