X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> ЧПУ или свои URL для каждой страницы
DrDRED
DrDRED
Topic Starter сообщение 28.5.2013, 7:31; Ответить: DrDRED
Сообщение #1


Добрый день!
Делаю небольшой движок для сайта. Столкнулся с такой проблемой. Контент хранится в БД, у каждого текста свой id, при переходе на новую страницу в ссылке указываю, например так index.php?id=$id, т.е. просто гетом передаю id а потом его обрабатываю.
Внимание вопрос. Как сделать чтобы для каждого контента был уникальный адрес в браузерной строке, т.е. URL.
Например:
index.php?id=1==> в браузере отображался как сайт.ru/about
index.php?id=2 ==> в браузере отображался как сайт.ru/contacts

и т.д. В joomla наподобие реализовано. Возможно ли это реализовать? Спасибо.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Alcorn
Alcorn
сообщение 28.5.2013, 9:53; Ответить: Alcorn
Сообщение #2


Сделать соответствие id и url?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
DrDRED
DrDRED
Topic Starter сообщение 28.5.2013, 10:07; Ответить: DrDRED
Сообщение #3


У меня есть такие ссылки
<a href="index.php?id=1">ссылка</a>

мне необходимо чтобы когда мы перейдем по этой ссылке, в браузере, в адресной строке отображалось http://сайт.ru/about
т.е. для каждой сгенерированной ссылки, можно было прописать свой url
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Wins
Wins
сообщение 28.5.2013, 10:15; Ответить: Wins
Сообщение #4


Во втором посте этой темы http://www.html.by/threads/30335-Kak-vydel...nkt-menju/page3

есть преобразование в чпу ссылки,только там еще помимо php используется само собой .htaccess
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
DrDRED
DrDRED
Topic Starter сообщение 28.5.2013, 10:41; Ответить: DrDRED
Сообщение #5


Короче очень много гуглил, нашел вот эту полезную ссылочкуhttp://www.softmaker.kz/articles/php/nastr...chelovekom.html
там описано практически то что мне надо, но все равно вопрос остался.
можно ли для каждой ссылки прописать отдельное правило, чтобы например index.php?id=1 ==> в браузере отображался как сайт.ru/about, а
index.php? id=2 ==> в браузере отображался как сайт.ru/contacts
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Alcorn
Alcorn
сообщение 28.5.2013, 10:47; Ответить: Alcorn
Сообщение #6


Я так делал: в бд таблица карты сайта (страницы есть реально на диске) и каталога - виртуальные страницы - id, pid, url, и т.д. (древовидная структура, {1, 0, about}, {2, 1, contacts} и ещё 13 тысяч категорий различной вложенности). При старте приложения рекурсией строил дерево и сохранял в массив, по типу $sitemap["/about/"] = array("id" => 1, "хлебные крошки" => "<a href='/'>Главная</a> > <a href='/О компании'>", "title" => "Главная / О компании"), $sitemap["/about/contacts/"] = array() и так далее, всё это дело в кэш пока сервер не перезагрузится или вручную категории из админки не поменяются. При клиентском запросе по url (ключу данного массива) вытаскивал id раздела (ваш случай), путь по сайту и всё остальное. Всё это делалось не на php, но подход примерно такой.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
DrDRED
DrDRED
Topic Starter сообщение 31.5.2013, 8:14; Ответить: DrDRED
Сообщение #7


так ладно, опустим предыдущий вопрос. Думаю надо сделать проще:

есть ссылки <a href="index.php?page=$id">ссылка</a>, что надо прописать в .htaccess, чтобы в браузере выводилась такая ссылка ==> сайт.ру/content/page/1, вот как то так
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Wins
Wins
сообщение 31.5.2013, 9:49; Ответить: Wins
Сообщение #8


DrDRED

Ну вот пример:

.htaccess

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^[^/]+\.html$ index.php [L]

[PHP]
$requestUri = $_SERVER['REQUEST_URI'];
$requestUri = preg_replace('/\?.+/', '', $requestUri);
$requestUri = preg_replace('#^/?#', '', $requestUri);

$parts = explode('/', $requestUri);
$categoryPart = $parts[0];
$articlePart = isset($parts[1]) ? $parts[1] : null;

$categoryId = 0;
$articleId = 0;

$categoryPart = mysql_real_escape_string(preg_replace('#\.html$#i', '', $categoryPart) . '.html');
$sql = "SELECT id FROM table_name_категории WHERE url = '{$categoryPart}'";
$categoryIdQuery = mysql_query($sql);
if (mysql_num_rows($categoryIdQuery) > 0) {
$categoryId = (int)mysql_result($categoryIdQuery, 0, 0);
}//Узнаем id категории//

if ($articlePart) {
$articlePart = mysql_real_escape_string(preg_replace('#\.html$#i', '', $articlePart) . '.html');
$sql = "SELECT id FROM table_name_статьи WHERE url = '{$articlePart}'";
$articleIdQuery = mysql_query($sql);
if (mysql_num_rows($articleIdQuery) > 0) {
$articleId = (int)mysql_result($articleIdQuery, 0, 0);
}
}//Узнаем id статьи//

if ($categoryId) {
$cat = $categoryId;
}



[/PHP]

Теперь там где нужно вывести ссылку

[PHP]$result = mysql_query
("SELECT id,url FROM table_name_статьи WHERE id='1' ",$db);

//вообще тут стоят переменны,но для наглядности поставил просто id='1'//

while ( $myrow = mysql_fetch_array( $result ) ){
$articleCategoryId = (int) $myrow['id_cat'];
$sql = "SELECT url,id,id_cat FROM table_name_категории WHERE id = {$articleCategoryId}";
$categoryQuery = mysql_query($sql);
$category = mysql_fetch_assoc($categoryQuery);
$categoryUrl = preg_replace('#\.html$#', '', $category['url']);


echo'<a href="/'.$categoryUrl.'/'.$myrow['url'].'">'[/PHP]

В $categoryUrl ссылка из бд из таблицы где хранятся категории

В $myrow['url'] ссылка из таблицы где хранятся статьи

Все это с учетом того что есть две таблицы,в одной категории,в другой статьи

По переменным сравнивается id_cat из таблицы статьи с id из таблицы категории.Но это не суть важно.

Просто вам осталось подстроить это все под себя.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Партнерская программа для Эзотерики, Магии, Таро
партнерка для эзотерики
0 LiveExpert 363 Вчера, 15:13
автор: LiveExpert
Открытая тема (нет новых ответов) Партнерская программа для Эзотерики, Магии, Таро
партнерка для эзотерики
0 LiveExpert 336 Вчера, 15:13
автор: LiveExpert
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыAzinomoney.com - гемблинг-партнерка с 65%RS для каждого
Гарантированный заработок на гемблинг-трафике
65 AzinoMoney 29197 27.3.2024, 19:10
автор: AzinoMoney
Горячая тема (нет новых ответов) Делаю полностью уникальный дизайн для сайтов!
46 AlexDIZ 93503 26.3.2024, 20:03
автор: AlexDIZ
Открытая тема (нет новых ответов) Большие ставки для кликов в Я.Директ. Как удешевить?
2 rownong27 1122 26.3.2024, 14:13
автор: knezevolk


 



RSS Текстовая версия Сейчас: 29.3.2024, 8:36
Дизайн