我想“捕获”进入URL的传入URL,这些URL带有多余的“%252F”字符(由于某些历史原因),并将它们重定向(301)到不包含这些字符的相同URL。例如:
传入网址:www.sample.com/content/%252F/foo
.htaccess规则之后:www.sample.com/content/foo
我必须能够在url中的同一位置捕获这些字符的多个实例,例如:www.sample.com/content/%252F/%252F/%252F/foo并将其全部删除。
我应该使用哪个.htaccess RewriteRule?
最佳答案
AFAIK RewriteRule必须知道传入请求URL的精确格式。因此,不支持在其中包含任意数量的%252F字符串。
但是,您可以做的是创建一个自定义404页面,该页面解析%252F的请求URL。自定义404页面将遵循以下逻辑:
Search the request URL for %252F
If found, replace it with a / (or nothing, up to you) and return a 301 header
and an appropriate error page.
Else return a 404 header and appropriate error page.
那应该给你想要的效果。
不用担心多余的斜线,apache会忽略它们。