我有一个网址:
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
但它不起作用。
有什么办法吗?
答案 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重定向)保留旗帜。