为两种类型的查询字符串URL创建重写条件

时间:2016-05-16 23:50:01

标签: apache .htaccess mod-rewrite url-rewriting

我有两种类型的查询字符串URL,我在htaccess文件中创建重写时遇到问题。第一种网址类型是 / component / afcatrades / 109165?view = profile 。我需要删除查询字符串?view = profile 并将其重写为此网址类型 http://www.afca.ab.ca/links/afca-trade-members/profile/%1 ,其中%1 是个人资料ID。我已经提出了以下重写规则,但它无法正常工作。需要调整什么才能使其发挥作用?

RewriteCond %{REQUEST_URI}  ^/([0-9]+)$
RewriteCond %{QUERY_STRING} ^view=profile$
RewriteRule ^(.*)$ http://www.afca.ab.ca/links/afca-trade-members/profile/%1 [L,R=301]

第二种网址类型是书店?page = shop.product_details& flypage = flypage-ask.tpl& product_id = 4410& category_id = 11 。我需要删除查询字符串?page = shop.product_details& flypage = flypage-ask.tpl& product_id = 4410& category_id = 11 并将其重写为此网址类型 {{3 }} ,其中网址的最后一段是与 category_id 相关联的书店类别。 product_id 可以是任何0-9值,无需连接到新网站上的特定产品。我只是需要它重定向到产品的类别。我已经提到了我提出的重写规则,但它再次无效。

RewriteCond %{QUERY_STRING} page=shop.product_details&flypage=flypage-ask.tpl&product_id=([0-9]+)$&category_id=11
RewriteRule ^(.*)$ http://www.afca.ab.ca/book-store/delmar-cengage-nelson-education? [R=301,L]

非常感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

这应该有效:

RewriteEngine On

RewriteCond %{QUERY_STRING} ^view=profile$
RewriteCond %{REQUEST_URI}  ^/component/afcatrades/([0-9]+)
RewriteRule ^(.*)$ /links/afca-trade-members/profile/%1? [L,R=301]

RewriteCond %{REQUEST_URI}  ^/book-store
RewriteCond %{QUERY_STRING} page=shop.product_details&flypage=flypage-ask.tpl&product_id=([0-9]+)&category_id=11
RewriteRule ^(.*)$ /book-store/delmar-cengage-nelson-education? [R=301,L]