我有一堆未命中的网址,我想将其重定向到正确的网址。
这是一个很好的例子:
http://example.com/search/?q=searchterm%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F&scope=45%2F%2F%2F%2F%2F/
我已经可以使用以下规则重定向其中大部分:
RewriteCond %{QUERY_STRING} ^(.*)%2F RewriteRule ^search/$ /search/?%1 [NE,R=301,L]
据我了解,这只能起作用,因为删除了尾随的“%2F”,然后规则再次点击。 Google只接受有限数量的重定向。
所以我尝试调整规则以使用一次或多次“%2f”
这是我有多远:
RewriteCond %{QUERY_STRING} ^(.*)((%2F)*) RewriteRule ^search/$ /search/?%1 [NE,R=301,L]
结果如下: / search /?q = searchtermFFFFFFFFFFFFFFFF& scope = 45FFFFF /
我缺少什么?
祝你好运, 亚历山大
答案 0 :(得分:1)
如果您只有两个查询参数,这可能会有效(当然,如果您有更多或更少的话,它可以进行调整):
# %1 Matches everything until the first group of %2F
# %2 Matches everything after the first group %2F until the second group
RewriteCond %{QUERY_STRING} ([^%2F]*)[%2F]*([^%2F]*)[%2F]*
RewriteRule ^search/$ /search/?%1%2 [NE,NC,R=301,L]
希望有所帮助。