Похоже, вы узнали, насколько токсичными могут быть относительные пути.
Возможное быстрое решение: что произойдет, если вы скопируете / symlink / alias admin.domain.com/images, чтобы указать на ту же папку с изображениями, которая находится на вашем сайте переднего плана? Я думаю, что лишние "../"es будут в основном игнорироваться.
Более постоянно и вообще не используйте относительные пути. Они не причинят вам ничего, кроме боли. Пара стратегий:
1) Определите некоторую константу, которая указывает на правильное местоположение для изображений, CSS и т. Д .:
define('IMG_DIR','/images');
define('CSS_DIR','/images');
// ... some time later
echo '<img src="' . IMG_DIR . '/myimage.jpg'"/>';
2) Намного лучше: просто сохраните одну константу, которая сообщает вам, где находится ваше приложение.
define('APP_ROOT','/myapp'); //could be chanted to just '/' if it doesn't live in some folder on the server
// ... later that day ...
echo '<img src=\"' . APP_ROOT . '/images/myimage.jpg"/>';
// ... or maybe you need to link to a logout script?
echo '<a href="'. APP_ROOT . '/auth/logout.php">Log Out</a>';
Важно предположить, что вашему приложению может потребоваться запустить из корня ("/") или из какого-либо каталога на сервере и т. Д.
То же самое касается операций с файловой системой, которые вы можете выполнять исключительно на стороне сервера. Используйте абсолютные пути файловой системы. Если у вашего основного приложения есть скрипт типа «config / config.php», вы можете поместить его вверху:
define('APP_FS_ROOT',realpath(dirname(__FILE__) . '/..'));