I Разделите доменное имя URL-адресом синтаксического анализа, как в localhost/test/news/id/title:
$url = $_SERVER['REQUEST_URI'];
$parts = parse_url($url, PHP_URL_PATH);
echo $parts;
Выход это:
/test/news/id/title
Теперь test - это папка xampp htdocs, а не папка в структуре папок моего приложения.
В действии мне нужно разделить папку domain и htdocs, если я работаю на локальном хосте, и отдельный домен, если я работаю с реальным веб-адресом, как этот вывод:
/news/id/title
Как мне распечатать этот результат?






Вам следует настроить DocumentRoot ваших проектов.
Если я работаю над проектом localhost, я использую следующую конфигурацию Apache:
<VirtualHost *:80>
ServerName project.loc
DocumentRoot "C:/xampp/htdocs/project"
SetEnv APPLICATION_ENV "development"
<Directory C:/xampp/htdocs/project>
DirectoryIndex index.php index.html
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
В этой настройке C:/xampp/htdocs/project будет результатом host вместо htdocs.
Если вы объедините это с обновлением файла "hosts" Windows (здесь: C: \ Windows \ System32 \ drivers \ etc), вы можете получить доступ к проекту с этой конфигурацией, используя http://project.loc.
Добавьте следующую строку в файл «hosts» (используйте Notepad ++ в режиме администратора, чтобы сохранить его в папке Windows):
127.0.0.1 project.loc
В чистом PHP вы также можете сделать это таким маленьким «грязным» способом:
list($rubish,$path)=explode('/','/'.$parts,2);
Теперь var $ path будет отображать / news / id / title в эхо.
Позвольте мне объяснить Кодекс: explode () разделит строку $ parts на 2 части. Функция list () определяет, что первая часть сохраняется в $ rubish (/ test / part), а вторая часть $ path получит оставшуюся часть вашего пути ;-)
But i also prefer what @rkeet answered!