从服务器根目录重定向到apache根目录

时间:2015-06-17 07:38:53

标签: php apache .htaccess directory root

我在Ubuntu 14.04上使用LAMP创建了简单的http服务器,并将我的html,php和js文件放到了apache根目录 / var / www / 。这些文件中的所有路径都是绝对路径,看起来像 /script1.php /subdir/script.php 。 Web服务器的目录树看起来像:

/
|---var
    |---www
        |---script1.php
        |---subdir
|---usr
|---home
|---etc 

文件 /etc/apache2/sites-available/000-default.conf

   ServerAdmin webmaster@localhost
   DocumentRoot /var/www

    <Directory />
            Options Indexes FollowSymLinks
            AllowOverride All
            Order Allow,Deny
            Allow from all
    </Directory>

    Alias /data /var/www/
    <Location /data>
            DAV On
            AuthType Digest
            AuthName "webdav"
            AuthUserFile /usr/local/apache2/.digest_passwd.dav
            Require valid-user
            Order Allow,Deny
            Allow from all
            DirectoryIndex disabled
    </Location>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

问题在于所有路径都从根服务器目录开始。

例如,php命令 opendir('/')显示列表:

/
|---var
|---usr
|---home
|---etc 

但是我需要那样的列表

/
|---subdir
|---script1.php

那么,我怎样才能让Apache认为'/'不是root web服务器目录,而是root apache目录?

1 个答案:

答案 0 :(得分:0)

opendir采用实际路径而不是Web服务器文档根目录的路径。因此,opendir(&#34; /&#34;)正常工作以向您显示服务器的根目录。

如弗拉基米尔所述,请使用

opendir($_SERVER["DOCUMENT_ROOT"]);

或者可能更好的安全性

opendir(filter_var($_SERVER["DOCUMENT_ROOT"], FILTER_INPUT_STRING));