我本周注册并设置了一个小型 ubuntu VPS 片段,到目前为止一切都很顺利,除了一个小问题。
我设置了两个虚拟主机,但无法访问每个虚拟主机的 javascript 文件夹。如果我导航到 www.domain1.com/javascript 或 www.domain2.com/javascript,我会收到以下消息...
You don't have permission to access /javascript/ on this server.
如果我将目录重命名为其他名称(例如:js),我可以毫无问题地访问内容。它似乎是一个保留关键字或类似的东西,即使没有 javascript 文件夹,我也会收到相同的消息,而不是 404 消息。
我删除了 .htaccess 文件,以防万一。没有……知道这是怎么回事吗?
答案1
Ubuntu Apache 配置已经有了Alias /javascript /usr/share/javascript/
,请参阅 /etc/apache2/conf.d/javascript-common.conf。您可以更改此别名或完全删除此文件,但我不知道这是否会破坏其他内容。
答案2
这问题:
使用 JavaScript 的 Web 应用程序需要通过 HTTP 分发它。为每个脚本使用一个通用路径可以避免在 HTTP 服务器中为每个包启用此路径。
/usr/share/javascript
这是创建别名并在 Apache 网络服务器中启用它的软件包。
建议修复
就是这样,您不会再遇到与 javascript 目录相关的任何其他问题。另一个修复方法是重命名为/usr/share/javascript/
,/usr/share/javascript-common/
然后调整别名以javascript-common.conf
指向重命名的目录。仍然不确定这是否会影响任何未来的更新。
另一个解决方法:
转到/etc/apache2/conf-available/javascript-common.conf
,你会发现这个:
Alias /javascript /usr/share/javascript/
<Directory "/usr/share/javascript/">
Options FollowSymLinks MultiViews
</Directory>
因此,您只需注释掉这些行(使用字符#
)(不建议在启用 conf 的情况下直接编辑文件)即可避免出现禁止错误。之后,执行以下操作:
a2disconf javascript-common
a2enconf javascript-common
答案3
Apache 有一个名为“DirectoryIndexes”的选项,当您访问没有索引文档(index.html、index.php 等)的文件夹的原始路径时,它会像普通文件浏览器一样显示该目录中的文件和文件夹列表。但是,如果 DirectoryIndexes 被禁用,它会在尝试显示文件夹时抛出 403(拒绝访问)错误。
在 /javascript/ 目录中创建一个 .htaccess 文件,内容如下
Options +Indexes
然后再次尝试查看目录,您应该会获得目录中所有文件的列表。
答案4
最简单的方法是覆盖配置中的 /javascript 来反映你想要的内容:Alias /javascript /mycustomdir