【发布时间】:2016-01-14 13:28:19
【问题描述】:
我有以下网址:
http://www.domain.com/index.php?route=product/search&search=product%20keyword%20remove
我想使用 htaccess 从此网址中删除“关键字”。这是我到目前为止所拥有的,但没有按预期工作:
RewriteRule ^search=(.*?)keyword(.*?)$ search=$1$2 [L,R=301,NC]
我在这里做错了什么?另外,空格“%20”应该如何处理?因为至少还需要删除其中一个空格。
有多个 url 包含“关键字”,但是这个关键字之前和之后的单词可能会有所不同,所以这就是我尝试使用 (.*) 的原因
谢谢
【问题讨论】:
-
%20 url 字符串中的空格可以通过在正则表达式模式中使用 \s 来处理。
-
我在这里做错了什么? - 您正在尝试匹配 RewriteRule 指令中的查询字符串,查询字符串无法在该指令中直接处理,您需要使用带有 %{QUERY_STRING} 的 RewriteCond。
标签: regex apache .htaccess mod-rewrite url-rewriting