将文件重定向到层次结构中的任何位置

Redirecting A File Anywhere In The Hierarchy

因此,显然某些移动广告会在其页面加载中丢弃对 mraid.js 的请求。我觉得这很荒谬,但我对此无能为力。它看起来像这样:

如果页面是 /something,请求以 /something/mraid.js

形式出现

但是对于像 /something/else/mraid.js

这样的情况,这种情况也会继续

无论 URL 是什么,它都会添加 mraid.js。

我在 .htaccess 文件中添加了这样几行:

RedirectMatch 301 (.*)\mraid.js$ /mraid.js

RedirectMatch 301 ^\mraid.js$ /mraid.js

RewriteCond  %{DOCUMENT_ROOT}/(.*)/mraid.js -f
RewriteRule ^(.*)$ /mraid.js [R=301,L]

希望将它们重定向到全局(和空白)mraid.js 文件。这只是为了加载一个文件来阻止分析中的 404 错误,据我所知,当需要 mraid.js 时,它是从移动设备 ad/app 中本地加载的。

但是 none 这些 .htaccess 规则似乎如我所料地捕获和重定向。关于如何始终匹配 URL 中的 mraid.js 并将其传递回 root 的任何想法?

经过一番摸索,我想通了。这是所有三件事的结合,为我解决了这个问题。首先,它必须将模式与 ^(.*) 匹配,然后是 [L,R=301]。 L 代表 "this is the last rule",R 代表 "it's a permanent 301 redirect."

RewriteRule ^(.*)/mraid\.js$ /mraid\.js [L,R=301]