.htaccess Htaccess URL通过匹配URL字符串和参数重定向

.htaccess Htaccess URL通过匹配URL字符串和参数重定向,.htaccess,url-rewriting,apache2,.htaccess,Url Rewriting,Apache2,我需要匹配URL格式,并根据URL匹配情况将传入的请求重定向到不同的页面 比如说 http://www.domain.com/path1/path2/错误的url-1/?var1=val1 http://www.domain.com/path1/path2/另一个错误的url-1/?var1=val1 http://www.domain.com/path1/path2/第三个错误url-1/?var1=val1 http://www.domain.com/path1/path2/第四个错误url

我需要匹配URL格式,并根据URL匹配情况将传入的请求重定向到不同的页面

比如说

http://www.domain.com/path1/path2/错误的url-1/?var1=val1
http://www.domain.com/path1/path2/另一个错误的url-1/?var1=val1
http://www.domain.com/path1/path2/第三个错误url-1/?var1=val1
http://www.domain.com/path1/path2/第四个错误url-1/?var1=val1

查看高亮显示的URL匹配。它总是将-1作为url字符串。。这需要重定向到一个静态页面

其他一些URL总是将var1作为URL查询字符串参数。所以,如果URL有var1作为查询字符串,那么这些URL需要重定向到另一个静态页面

所以我试过了,但没有成功。请在这个重定向脚本中帮助我

  RewriteEngine on
  RewriteRule ^(path1/path2/[^-1]*)$ http://www.domain.com/target-page [L,R=301]

一,。以
-1/
结尾的URL规则:

RewriteRule ^path1/path2/([^/]+)-1/$ http://www.domain.com/target-page [L,R=301]
二,。查询字符串中包含
var1=
参数的规则:

RewriteCond %{QUERY_STRING} (^|&)var1=([^&]*)(&|$)
RewriteRule .* http://www.domain.com/another-target-page [L,R=301]
注意:
使用这些规则,现有的查询字符串也将被传递到新的URL(例如,
/path1/path2/error-URL-1/?say=meow
将变为
http://www.domain.com/target-page?say=meow
)。要删除它,请在目标URL的末尾添加
(例如
http://www.domain.com/another-target-page? [L,R=301]

太好了。非常感谢。我已经添加了这个。重写规则^wine/addression/(.*)-1$?[L,R=301]但是对于查询字符串,它仍然不起作用。我不知道我犯了什么错误。让我再试试。这是我的错(打字错误):应该是
%
字符而不是
$
:将
${Query\u string}
更改为
%{Query string}
是的,我只添加了%,但在我最后一天测试它时,它不工作。今天它确实工作了。非常感谢