2012-02-20 3 views
-1

Я искал все форумы недавно, включая StackOverflow, но не смог найти решение, как использовать файлы .htaccess. Я слышал, что виртуальные каталоги создаются с использованием этой службы.создание виртуального каталога .htaccess файлов

Я хочу, чтобы виртуальный путь профиля пользователя, который будет отображаться как это, если имя пользователя установлено

www.example.com/username

или если имя пользователя не задано, то будет отображаться профили пользователей по этой ссылке

www.example.com/profile.php?id=134531

Так же, как Facebook.

Может ли кто-нибудь выслать мне точный код? Заранее спасибо.

+0

Вы ищете «Mod rewrite» или «RewriteRule», что даст вам гораздо лучшие результаты поиска. Есть миллионы страниц, посвященных этому. – BenOfTheNorth

+0

Ни один из них не помог, потому что я ничего не знаю о .htaccess и не понимаю ни одного слова. –

+0

Создание «виртуальных каталогов», как вы его называете, выполняется с помощью Mod Rewrite с правилами перезаписи. Я уверен, что если вы потратили более 1 минуты на поиски, вы найдете больше информации. – BenOfTheNorth

ответ

2

я предполагаю виртуальных каталогов вы имеете в виду переделок. У вас есть страница 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 и сделать свой путь через несколько тестовых установок.

+0

ok Я понял, но этот код перенаправляется на profile.php, а я хочу его. –

+0

Ты хочешь это вместо чего? –

+0

Я хочу, чтобы пользователь вводил страницу profile.php? Id = 153511, чем перенаправление на пример.com/username this page –

1

Это URL переписывания, искать его, и вы найдете много учебников

+0

Ни один из них не помог, потому что я ничего не знаю о .htaccess и не понимаю ни одного слова –

Смежные вопросы