我正在尝试将引用外部 JavaScript 和 CSS 资源的托管 index.html 文件的请求重定向到我服务器上的本地 JS/CSS 文件。例如,我的 index.html 正在从 foobar.com 请求 script.js:

<script type="text/javascript" src="https://foobar.com/foo/scripts/script.js"></script>

并且我的index.html没有托管在foobar.com上。

我希望 index.html 请求我的本地文件/js/script.js(而不触及 html 文件)。

我已经在.htaccess中尝试过:

RewriteEngine On

# Redirect external JavaScript requests to local files
RewriteCond %{REQUEST_URI} ^/foo/scripts/script\.js [NC,OR]
RewriteRule ^(.*)$ /js/$1 [L]

但它似乎不起作用,index.html 仍在尝试从访问 script.jshttps://foobar.com

从技术上讲,这些请求不是发往我的服务器的,那么有可能捕获它们吗?即使它们来自托管在我服务器上的 index.html…

2

  • “来自托管在我服务器上的 index.html” – 请求来自下载文件的客户端/浏览器index.html。退一步说…这样做的目的是什么?“我的服务器”是否也托管在“本地”,并且用于在您的 PC/LAN 上进行本地foobar.com开发?在这种情况下,您确实可以强制请求在“本地”处理。


    – 

  • 1
    @MrWhite 目的是我正在创建一个大型网站的镜像,但下载的 HTML 文件仍然引用原始域上的绝对链接。而且它们太多了,无法手动更新资产链接。自动脚本将所有资产链接替换为相对路径可能是唯一可行的解​​决方案。我不希望它是完全本地的,不。


    – 



最佳答案
1

从技术上讲,这些请求不是发往我的服务器的,那么有可能捕获它们吗?即使它们来自托管在我服务器上的 index.html…

不会。它们永远不会到达您的服务器。您可以做的是使用替换您发送的内容中的字符串。请注意,这会给服务器带来不小的额外负载,因为它必须实际匹配并执行替换。