【发布时间】:2015-03-10 12:19:35
【问题描述】:
我已经尝试解决这个问题 3 天,但在经历了许多其他 SO 问题后仍然无法弄清楚。
我正在使用 Apache 2.4.7 设置 DigitalOcean VPS。 2.4 的设置与以前的版本不同,所以这可能是我的问题的一部分。
问题
我正在从共享主机迁移,并尝试在新的 DO VPS 上测试我的网站。当我转到我的新 IP 地址时,网站会加载,但以下资源会出现 404 错误:
<link href="/javascript/jquery-ui-1.9.2.custom/css/smoothness/jquery-ui-1.9.2.custom.css" rel="stylesheet">
<script src="/javascript/jquery-ui-1.9.2.custom/js/jquery-ui-1.9.2.custom.js"></script>
<script src="/javascript/dialog/alert_text.js"></script>
其他文件夹中的资源加载正常;例如,这个样式表加载没有问题:
<link rel="stylesheet" type="text/css" href="/styles/main_style.css">
我在我的 /javascript 目录中找到了一个 403 禁止错误的问题。此目录由同一所有者/组拥有,并且与我的 Web 根目录中的所有其他目录具有相同的权限 (755)。但由于某种原因,我无法从我的网络浏览器访问 /javascript。
我尝试了什么
文件确实存在于该位置的新服务器上。我检查了文件夹是否正确,并且没有任何奇怪的大写字母。旧服务器上一切正常,我所做的只是将目录结构复制并粘贴到新服务器上。
服务器上没有 .htaccess 文件。并且服务器不会关心是否存在,因为 Alow Override None 已设置。
我已将我的 apache2.conf 改回默认状态,以确保没有奇怪的 <Directory> 指令。
我为 /javascript 文件夹添加了 <Directory> 并添加了 Require all granted。
我将 /javascript 文件夹的权限更改为 chmod 777 无效,然后更改回 chmod 755。
每次更改后我都会重新启动网络服务器,但没有任何效果。我总是在 /javascript 目录上收到 403 禁止错误,即使所有者和权限与我的 Web 根目录中的所有其他目录完全相同。
有什么方法可以获取有关 403 错误的更多信息吗?有什么方法可以找出为什么它不允许访问?
最后说明
需要注意的一点是,我尚未将我的 DNS 指向 DigitalOcean,因为我仍在测试。所以客户端浏览器正在从 MY.IP.ADR.ESS/javascript/... 而不是 MYDOMAINNAME/javascript/... 加载。我无法想象这会很重要,但我想我还是会提到它。
【问题讨论】:
-
由于您正在迁移,这可能是cross-site scripting 的问题吗?
-
我不确定您的意思...您是说有人入侵了我的全新服务器并恶意禁止我查看我的 /javascript 目录吗? ;-)
-
如果您的主要内容托管在
yourdomain.com,但脚本来自my.ip.adr.ess,则浏览器可能会认为这是跨站点脚本攻击,因此拒绝加载您的脚本。 -
我不这么认为 djs,上面列出的所有链接都是相对于 web 根的。域名未列出。这也无法解释尝试从 Web 浏览器访问 /javascript 目录时出现的 403 错误。
标签: web-services file-permissions server permission-denied