Htaccess查询字符串到另一个

时间:2016-10-03 12:57:01

标签: .htaccess

我有一个网址:

shop/products.html?search_limiter=full&keyword1=apple

我想将此网址重写为:

index.php?route=product/search&search=apple&description=true

使用apache .htaccess

我试试:

Redirect 301 /shop/products.html?search_limiter=full&keyword1=apple     http://www.example.com/index.php?route=product/search&search=apple&description=true

但它不起作用。

有什么办法吗?

1 个答案:

答案 0 :(得分:1)

要重写查询字符串,您必须先使用RewriteCond匹配查询字符串 - 然后您可以在RewriteRule中使用%N类型匹配。

这将执行您想要的重写(使用任何搜索词,而不仅仅是“apple”):

RewriteEngine On
RewriteCond %{REQUEST_URI} shop/products.html
RewriteCond %{QUERY_STRING} search_limiter=full&keyword1=(\w+)
RewriteRule ^.*$ /index.php?route=product/search&search=%1&description=true [NC,L,R=301]

如果您想要实际更改地址栏中的网址,只需更改正在加载的资源,请将 R = 301 (http 301重定向)保留旗帜。