在其他地方阅读时,我遇到了将我不希望公众访问的文件放在我的 Web 根文件夹上方的概念。在我的本地 WAMP 堆栈上执行此操作没有问题,但是一旦转移到我的 VPS(运行 Ubuntu 10.04.4 LTS),PHP 脚本只能看到根目录下的文件。
我的子域的 VirtualHost 设置:
<VirtualHost *:80>
# Admin email, Server Name (domain name), and any aliases
ServerAdmin #####@####.com
ServerName admin.########.com
ServerAlias www.admin.########.com
# Index file and Document Root (where the public files are located)
DirectoryIndex index.html index.php admin.php
DocumentRoot /srv/www/#######.com/public_html/admin/web_pages
<Directory /srv/www/#######.com/public_html/admin/web_pages>
Options +Indexes
AllowOverride All
</Directory>
# Log file locations
LogLevel warn
ErrorLog /srv/www/########.com/logs/error.log
CustomLog /srv/www/########.com/logs/access.log combined
</VirtualHost>
给出的日志错误:文件不存在:/srv/www/#######.com/public_html/admin/web_pages/css,引用者:http://www.admin.######## .com/
(我的 css 文件夹位于 web_pages 文件夹上方,并通过以下路径调用:../css/####.css)
这是我的配置设置的问题,还是我试图做一些我不应该做的事情,而是在我的网络根目录下拥有我需要的一切?我真的希望常量文件和应用程序逻辑无法访问,但 css、html 页面和图像都可以。