【发布时间】:2017-01-04 02:12:01
【问题描述】:
我正在使用 Apache envvars 创建 MYDOMAIN 和 MYSUBDOMAIN 变量,我在其中定义了“mydomain.com”和“sub.mydomain.com”。然后我在 apache sites-available 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 因此 /file.txt 和 /index.php 正在 /var/www/html/sub/ 中有效地查找 - 我需要这个来查找对于 /var/www/html/ 中的 file.txt,然后重定向到 /var/www/html/index.php。
我也尝试使用“../file.txt”和“../index.php”,但这会返回相同的结果(即记录了“404 错误”,因为它正在寻找本质上是 /var/www 的内容/html/sub/file.txt)。由于我无法从 JS 访问 apache envvars(我认为 - 如果可以的话,这将是一个重大的安全恐慌!) - 我还有其他选择吗?
谢谢!
【问题讨论】:
-
不明白为什么你不做所有这些服务器端并重定向到那里
-
因为 file.txt 在服务器上发生特定事件之前可能存在也可能不存在,这允许用户在整个网站可用之前使用子域迷你站点。
标签: javascript php