Apache 使用重写规则重定向表单获取请求

Apache 使用重写规则重定向表单获取请求,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,好的,我有一个网站,用户可以将搜索查询放入一个表单中,使用GET发送数据 当它被发送时,url看起来像:/recipes.php?query=taco&contracents=chili 我想把它改写成:/recipes-taco-Ichili.html 因此,我在.htaccess文件中添加了以下行: RewriteRule recipes\.php\?query=(.*)&ingredients=(.*)$ /recipes-$1-I$2.html [R] 我的印象是,这会将用户重

好的,我有一个网站,用户可以将搜索查询放入一个表单中,使用GET发送数据

当它被发送时,url看起来像:/recipes.php?query=taco&contracents=chili 我想把它改写成:/recipes-taco-Ichili.html

因此,我在.htaccess文件中添加了以下行:

RewriteRule recipes\.php\?query=(.*)&ingredients=(.*)$ /recipes-$1-I$2.html [R]
我的印象是,这会将用户重定向到屏蔽页面,但url不会改变

我已经重写了引擎,一旦url出现在表单中 /recipes-something-Isomethingelse.html它工作正常


我以前用php做过,但是如果我能用.htaccess来做,那就太好了

您无法在重写规则中获取查询字符串:


是的,但它没有显示页面。上面写着“找到页面”。好了,现在我就快到了。它重写了它,但它的结尾仍然有${QUERY_STRING},这使得它在重定向时循环。我让它工作了,我只需要另一个RewriteCond来检查${the_REQUEST}for recipes.php。
RewriteCond %{QUERY_STRING} ^query=([^&]*)&ingredients=(.*)$
RewriteRule ^recipes.php$ /recipes-%1-I%2.html [R]