htaccess和apache别名重写文件根目录上的目录

时间:2016-06-17 13:42:36

标签: php apache .htaccess mod-rewrite

当前目录设置如下:

website
    - web
        index.php
    - base
        file.php
    .htaccess

文档根目录是' web'目录。 index.php文件有一个require脚本来获取' file.php'。

require(dirname(dirname(__FILE__)) . '/base/file.php');

我想要实现的是,如果'基地'目录不存在,.htaccess文件将重写' base'文件到本地计算机上的另一个位置。目前我在httpd.conf中设置了一个Alias:

Alias /basefiles "/Users/Guest/base"

<Directory "/Users/Guest/base">
    Options +Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

并在.htaccess文件中:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond ${REQUEST_FILENAME} !-f
RewriteCond ${REQUEST_FILENAME} !-d
RewriteRule ^base/(.*)$ /basefiles/$1 [L]

目前这根本不起作用。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

PHP require与如何从网络访问文件无关。

To&#34;重写&#34; PHP文件位置,您可以在PHP脚本中明确检查,如果目录和文件存在并采取相应的行动。

另一种策略可能会将include_pathset_include_path)设置为/.../base:/.../basefiles,然后只需

require('file.php');