繁体   English   中英

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

[英]htaccess and apache alias to rewrite directory above document root

当前目录设置如下:

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

文档根目录是“ web”目录。 index.php文件具有一个获取“ file.php”的需求脚本。

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

我要实现的目标是,如果“基本”目录不存在,.htaccess文件会将“基本”文件重写到本地计算机上的另一个位置。 目前,我已经在httpd.conf中设置了一个别名:

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]

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

PHP的require与从Web访问文件的方式无关。

要“重写” PHP文件位置,您可以在PHP脚本中显式检查目录和文件是否存在并采取相应措施。

另一种策略可能将include_pathset_include_path )设置为set_include_path类的/.../base:/.../basefiles ,然后

require('file.php');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM