Я использую:
$domain = $_SERVER['HTTP_HOST'];
$path = $_SERVER['SCRIPT_NAME'];
$themeurl = $domain . $path;
Но это, конечно, дает полный URL. Вместо этого мне нужен полный URL минус текущий файл и один каталог и минус конечная черта.
поэтому независимо от того, какой домен URL-адреса браузера, например, localhost, https://, http://и т.д., передается полный реальный (обходя любой переупорядоченный мод) путь URL-адреса родительского каталога без конечной косой черты.
Как это делается? Безопасно, поэтому XSS, как я полагаю (от чтения), используя что-либо, кроме "SCRIPT_NAME", не имеет такого риска. Не уверен, хотя он... просто читал тонну, пытаясь понять это.
примеры: если дано:
https://stackoverflow.com/info/somequestions/index.php
необходимо:
https://stackoverflow.com/questions
без конечной косой черты.
и должен также работать, например:
http://localhost/GetSimple/admin/load.php
чтобы получить
http://localhost/GetSimple
что я пытаюсь сделать.
Спасибо.
Edit: Здесь рабочее решение, которое я использовал:
$url = isset($_SERVER['HTTPS']) ? 'https://' : 'http://';
$url .= $_SERVER['SERVER_NAME'];
$url .= htmlspecialchars($_SERVER['REQUEST_URI']);
$themeurl = dirname(dirname($url)) . "/theme";
он отлично работает.