如果我的html文件位于http://sample.com并且html文件正在加载ajax调用的资产中,那么服务器是否可以拦截该资产并提供不同的资产,而html文件不会更改网址或添加url参数到资产ur;?
示例:http://sample.com/index.html?configID=567有一个config.json文件正在加载ajax,如下所示:
$.getJSON('config.json', function(data){});
apache知道这个config.json
文件是由一个url参数为configID=567
的html文件请求的,并且从config567.json而不是config.json传回响应吗?
我无法修改html文件中的javascript来阅读$.getJSON('config.json?configID=567', function(data){});
所以我想在服务器端进行修改。
如果有一个php解决方案,我也有php运行,而不会将html文件更改为php文件。
答案 0 :(得分:1)
您似乎在寻找基于Referer的Rewrite in Apache。实现细节可能会有所不同,但您可以尝试根据ID获取不同的文件:
RewriteEngine On
RewriteCond %{HTTP_REFERER} configID=(\d+)$
RewriteRule ^config.json$ configs/config-%1.json
%1
部分是指RewriteCond
行中带括号的组。
或者,您可以为json文件类型启用PHP处理并在php中实现逻辑:
// config.json
<?php
$id = $_GET['configID'];
header('Content-Type: application/json');
echo get_config_from_database_by_id($id);