无法访问包含相对URls的文件

时间:2013-06-02 21:55:35

标签: php .htaccess mod-rewrite

我接管了一个迎合客户端访问的网站。他们都访问自己的文件夹,在文件夹中文件的include包含相对路径,如下所示。

/ core - 包含所有实际文件

/client/file.php -

<? include "../core/file.php"; ?>

但随着越来越多的客户,我希望更深入一点,并将它们更好地分开......

/uk/client/file.php -

<? include "../../core/file.php"; ?>

这很好但是当包含文件时,它们也有自己的相对包含,这就是它破坏的地方。

有太多文件我不能轻易通过它们来更改所有包含路径所以我想重写一下来伪造路径?

我试过这个......

RewriteRule ^uk/$ /

但这不起作用。

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

这听起来像是__DIR__的作品,您可以查看documentation here

  

文件的目录。如果在include中使用,则返回包含文件的目录。这相当于dirname( FILE )。除非它是根目录,否则此目录名称没有尾部斜杠。 (在PHP 5.3.0中添加。)

否则,您仍然可以将所有相对路径切换到绝对路径,并避免在其他文件中包含某些文件时出现任何问题。

作为旁注,我建议不要使用php短标记<?...?>,我宁愿使用长标签<?php....?>