Problem with RewriteCond %{QUERY_STRING}, backreference not dispaying in final URL

心不动则不痛 提交于 2019-12-07 09:53:40

问题


I have the following in my .htaccess file:

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]

It's not behaving as expected though, when I enter the URL:

http://example.com/index.php?route=product/category&path=35&page=2

It gets rewritten to:

http://example.com/product/category/35/page_

Could someone tell me what I have done wrong please?

Thanks,

eb_dev


回答1:


To reference submatches of a RewriteCond directive, you need to use %n instead of $n:

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


来源:https://stackoverflow.com/questions/2703821/problem-with-rewritecond-query-string-backreference-not-dispaying-in-final-u

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!