я предполагаю виртуальных каталогов вы имеете в виду переделок. У вас есть страница profile.php, которая загружает профиль пользователей через имя пользователя или через id.
Давайте рассмотрим вашу первую проблему, сопоставив /[username]
с номером profile.php?username=[username]
. Это решение предполагает, что на сервере Apache установлен mod_rewrite
.
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)$ profile.php?username=$1 [L]
(Поместите это в файл .htaccess в корневом каталоге вашего веб-приложение или в каталоге VirtualHost в вашем Apache конф)
Это внутренне перезаписать любой запрос/[имя пользователя], чтобы profile.php ? имя пользователя = [имя пользователя].
Что касается использования имени пользователя, когда оно доступно, и идентификатора, когда нет - вам придётся выполнить, когда вы создаете ссылки.
<?php
$profile_url = $username ? : 'profile.php?id='.$userid;
?>
<a href="/<?php echo $profile_url; ?>">View profile</a>
Это заботит здание связи. Тогда у вас есть страница profile.php:
$username = $_GET['username'];
$userid = $_GET['id'];
if ($username) {
/* Load user via username */
} else {
/* Load user via ID */
}
Есть множество учебников по URL Переписывая с Apache в Интернете, только Google и сделать свой путь через несколько тестовых установок.
Вы ищете «Mod rewrite» или «RewriteRule», что даст вам гораздо лучшие результаты поиска. Есть миллионы страниц, посвященных этому. – BenOfTheNorth
Ни один из них не помог, потому что я ничего не знаю о .htaccess и не понимаю ни одного слова. –
Создание «виртуальных каталогов», как вы его называете, выполняется с помощью Mod Rewrite с правилами перезаписи. Я уверен, что если вы потратили более 1 минуты на поиски, вы найдете больше информации. – BenOfTheNorth