我正在启动一个新网站,但在执行我想要的文件/文件夹组织时遇到了困难:
为了论证起见,假设我的网站将托管在: http: //mywebsite.com/
我想(已设置)Apache 的虚拟主机将http://mywebsite.com/映射到 /fileserver/mywebsite_com/www 文件夹。
当我决定将一些文件(favicon.ico 和 robots.txt)放入 Apache 正在将http://mywebsite.com/挂载到/www 之上的文件夹中时,问题就出现了
robots.txt+favicon.ico go into => /fileserver/files/mywebsite_com/stuff
因此,当人们访问http://mywebsite.com/robots.txt时,Apache 会为他们提供来自 /fileserver/mywebsite_com/stuff/robots.txt 的文件
我试图通过 mod_rewrite 设置重定向,但唉:
RewriteRule ^(robots\.txt|favicon\.ico)$ ../stuff/$1 [L]
对我没有好处,因为基本上我是在告诉 apache 提供高于其已安装根目录的内容。
是否有可能通过以不同方式设置 Apache 的(2.2.9)虚拟主机或定义某种 RewriteMap 来实现所需的功能,而不是将相关 URL 重写为其他 URL,而是改写为系统文件路径?如果不是,那么所需组织(如果有的话)的首选行动方案是什么?
我知道我可以通过 PHP 访问前面提到的文件,然后将它们流式传输——比如使用 readfile(..),但我想让 Apache 做尽可能多的工作——它肯定比做 I/O 更快通过 PHP。
非常感谢,这已经剥夺了我几个小时的建设性工作。更不用说可怜的 Apache 每隔几分钟就会重新启动一次。想想可怜的阿帕奇:)