2013-06-02 54 views
0

我接管了一個可以滿足客戶訪問的站點。他們都訪問自己的文件夾,並在文件夾中的文件有包含與相對路徑如下。無法訪問包含相對URls的文件

/核心 - 包含所有實際文件

/client/file.php -

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

但隨着越來越多的客戶我想要去一個更深層次的原因他們更好地分離.. 。

/uk/client/file.php -

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

這是好的,但是當FIL es被包括在內,他們也有自己的相對包含,這就是它破壞的地方。

有很多文件我不能輕易地通過它們來改變所有的包含路徑,所以我想也許做一個重寫來僞造路徑?

我已經試過這...

RewriteRule ^uk/$/

但是,這並不工作。

任何幫助,將不勝感激

+0

它一般會推薦這種規模的項目有包含最常用的路徑變量你的項目(如'core'文件夾)。這樣,如果您需要更改路徑,則可以在一個位置完成。 –

+0

我會繞過這樣做,因爲我剛剛接管了該網站,但我現在需要快速修復 – jhodgson4

回答

0

這聽起來像是對__DIR__一個工作,你可以檢查documentation here

文件的目錄。如果在include中使用,則返回包含文件的目錄。這相當於dirname(FILE)。除非目錄名是根目錄,否則該目錄名沒有結尾斜槓。 (在PHP 5.3.0中添加)。

否則,您仍然可以將所有相對路徑切換爲絕對路徑,並且如果某些文件包含在其他路徑中,則可以避免任何問題。

正如方面說明我會建議不要使用PHP的短標記<?...?>,我寧願使用長標籤<?php....?>

+0

嗨...這將添加包含的位置的路徑嗎?所以/server_path/uk/client/core/file.php – jhodgson4

+0

@ jhodgson4是的,你可以試試看,無論如何快速修復我寧願使用絕對路徑在任何要求/包括 – Fabio

+0

我可以做到這一點,但在包含的文件中包含路徑仍然是錯誤的:-(。必須有一種方法可以用htaccess來完成 – jhodgson4