基于调用资产的html文件URL传递资源

时间:2018-01-31 18:59:25

标签: php ajax apache redirect

如果我的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文件。

1 个答案:

答案 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);