.htaccess重定向到特定路由

时间:2017-01-13 09:02:17

标签: php apache .htaccess redirect mod-rewrite

我需要在URL中重定向一组具有特定参数的特定页面。我对.htaccess重定向有点熟悉,但这个让我很头疼。

我想重定向https://www.xxxxxx.com/index.php?page=shop.ask&flypage=flypage_images.tpl&product_id=182&category_id=39&option=com_virtuemart&Itemid=9

TO:  https://www.xxxxxx.com/index.php?page=shop.ask

这是我为重定向索引和索引2编写的规则,但是“?”之后的参数被视为OR

RewriteEngine on

RewriteRule index[0-2]*.php?page=shop.(.*)$ https://www.xxxxx.com/index.php?page=shop.ask [R]

我需要逃避'?'因为它将php作为ph或php,之后的参数不被apache考虑。

我已尝试使用REWRITECOND使用此规则,但它不起作用。

请建议正确的重定向规则。

1 个答案:

答案 0 :(得分:0)

您需要使用RewriteCond。尝试:

RewriteEngine On
RewriteCond %{QUERY_STRING} page=shop.ask&flypage=flypage_images.tpl&product_id=182&category_id=39&option=com_virtuemart&Itemid=9
RewriteRule ^index.php https://www.xxxxx.com/index.php?page=shop.ask [R,L]

只要您的查询字符串始终按照您指定的确切顺序显示,这就应该有效。否则,您需要为RewriteConds组合为每个参数创建一堆[AND]