RewriteCond%{QUERY_STRING}出现问题,后向引用未在最终到达网址中显示

eb_*_*Dev 4 mod-rewrite backreference query-string

我的.htaccess文件中有以下内容:

RewriteCond %{QUERY_STRING} ^route\=product\/category\&path\=35\&page\=([0-9]+)$
RewriteRule ^index\.php$ http://%{HTTP_HOST}/product/category/35/page_$1? [R=301,L]
Run Code Online (Sandbox Code Playgroud)

当我输入URL时,它的行为并不像预期的那样:

http://example.com/index.php?route=product/category&path=35&page=2
Run Code Online (Sandbox Code Playgroud)

它被重写为:

http://example.com/product/category/35/page_
Run Code Online (Sandbox Code Playgroud)

有人能告诉我,我做错了吗?

谢谢,

eb_dev

Gum*_*mbo 8

要引用RewriteCond指令的子匹配,您需要使用%n而不是$n:

RewriteCond %{QUERY_STRING} ^route=product/category&path=35&page=([0-9]+)$
RewriteRule ^index\.php$ /product/category/35/page_%1? [R=301,L]
Run Code Online (Sandbox Code Playgroud)