访问Web服务器文档根文件夹上方的文件

时间:2013-11-11 22:11:38

标签: php apache ubuntu-10.04

在其他地方读书时,我遇到了将我不希望公开的文件放在我的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,referer:http://www.admin.########.com/

(我的css文件夹位于web_pages文件夹上方,通过此路径调用:../ css / ####。css)

这是我的配置设置的问题,还是我尝试做一些我不应该做的事情,而是在我的网络根目录下拥有我需要的一切?我真的很喜欢常量文件和应用程序逻辑无法访问,但css,html页面和图像都可以。

1 个答案:

答案 0 :(得分:2)

如果要授予对web root上方某些文件夹的公共访问权限,可以使用Alias指令:

Alias /css/ "/srv/www/#######.com/public_html/admin/css"
<Directory /srv/www/#######.com/public_html/admin/css>
# some configuration directives here   
</Directory>

之后,您的css文件将可通过新路径访问(不包含..):/css/####.css

不要忘记打开mod_alias Apache模块