在其他地方读书时,我遇到了将我不希望公开的文件放在我的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页面和图像都可以。
答案 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模块