[英]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_path
( set_include_path
)设置为set_include_path
类的/.../base:/.../basefiles
,然后
require('file.php');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.