2

在其他地方阅读时,我遇到了将我不希望公众访问的文件放在我的 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 页面和图像都可以。

4

1 回答 1

2

如果您想授予对 web 根目录以上某些文件夹的公共访问权限,您可以使用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_aliasApache 模块

于 2013-11-11T22:38:43.463 回答