搜索

首页  >  问答  >  正文

macos - OS X 下 Apache 列文件指向错误

最近换了台 Mac,配 Apache 的时候发生了一点诡异的情况。

比如说我本地的目录是 ~/Work/app/a/b,我将 www.test.com 指向了本地 ~/Work 这个目录,那么访问 http://www.test.com/app/a/b 是没有问题的。

但是当我把 Options Indexes 打开之后,打开 http://www.test.com/app/a/,可以看到列出 b 目录,然后我点击它,网址居然跳到 http://www.test.com/app/b 去了!注意,直接用绝对路径打开是正常的,并不会跳转(因此我感觉并不像权限问题)。

我看了看根目录下的 .htaccess,并没有看出什么端倪。把 mod_rewrite 注释掉也没什么作用。

奇怪的是,我的 app 下有很多目录,但并不是每一个都会出现情况。我试图找找其中的共性,好像就只有一点:发生回跳的目录(文件)都处于目录的最后一个层级。

不知各位有没有碰见过这种情况,我的 Apache 版本是 Yosemite 自带的 2.4.10。

谢谢!

淡淡烟草味淡淡烟草味2878 天前684

全部回复(1)我来回复

  • 淡淡烟草味

    淡淡烟草味2017-05-16 17:04:20

    自问自答……

    原因很简单,因为我没有打开 mod_dir
    mod_dir 中有一个参数叫 DirectorySlash,用于自动在目录地址后面加斜杠。
    我之前没有加载此模块,自然这个功能也不起作用了。
    而我觉得时好时坏的原因是有时候我自己打上了斜杠。

    当初之所以要关闭 mod_dir,是为了让 DirectoryIndex 这个参数失效,这样可以防止 Apache 自动打开目录下的 index.html (本地开发用),结果给自己挖了个坑。
    其实只要设置 DirectoryIndex disabled 就可以了(2.4 以上才有用)。

    参考文档

    回复
    0
  • 取消回复