使用JavaScript将子域重定向到域

时间:2017-01-04 02:12:02

标签: javascript php

我正在使用Apache envvars创建MYDOMAIN和MYSUBDOMAIN变量,我定义了mydomain.com'和' sub.mydomain.com'。然后我在apache站点中使用这些变量 - 可用的conf文件来部署网站。 ' sub'子域位于/ var / www / html / sub /中。我需要在子域网站上使用JavaScript函数检查/ var / www / html中是否存在特定文件,如果存在,则重定向到该位置(即mydomain.com)。我不能硬编码任何特定的URL - 这些将严格使用apache envvars处理,所以我需要一个无论域/子域是什么都可以使用的解决方案。

为此,我正在使用这样的AJAX,如果file.txt返回成功,则重定向到/index.php: -

$(document).ready(function() {

            $.ajax({
                type: 'HEAD',
                url: '/file.txt',
                success: function() {
                            setInterval(function () {
                                    location.replace("/index.php");
                            }, 5000);
                },
                error: function() {
                            console.log('404 Not Found');
                }
            });
});

不幸的是,子域的文档根是/ var / www / html / sub因此在/ var / www / html / sub /中有效地查找/file.txt和/index.php - 我需要这个看看对于/ var / www / html /中的file.txt,然后重定向到/var/www/html/index.php。

我也尝试过使用' ../ file.txt'和' ../ index.php'但是这会返回相同的结果(即' 404错误'被记录,因为它正在寻找基本上是/var/www/html/sub/file.txt的内容)。因为我无法从JS访问apache envvars(我认为 - 如果可以的话,这将是一个重大的安全恐慌!!) - 我还有其他选择吗?

谢谢!

1 个答案:

答案 0 :(得分:0)



var hostFileUrl = function(fileName){
  return window.location.protocol + "://" + window.location.hostname + "/" + fileName;
};

$(document).ready(function() {
  $.ajax({
    type: 'HEAD',
    url: hostFileUrl('file.txt'),
    success: function(){
      setInterval(function(){
        window.location.assign(hostFileUrl("index.php"));
      }, 5000);
    },
    error: function(){
      console.log('404 Not Found');
    }
  });
});