Помощник
|
ЧПУ или свои URL для каждой страницы |
DrDRED
|
Сообщение
#1
|
||
|
|
||
|
|||
Alcorn |
28.5.2013, 9:53;
Ответить: Alcorn
Сообщение
#2
|
|
Сделать соответствие id и url?
|
|
|
DrDRED
|
Сообщение
#3
|
|
У меня есть такие ссылки
<a href="index.php?id=1">ссылка</a> мне необходимо чтобы когда мы перейдем по этой ссылке, в браузере, в адресной строке отображалось http://сайт.ru/about т.е. для каждой сгенерированной ссылки, можно было прописать свой url |
|
|
Wins |
28.5.2013, 10:15;
Ответить: Wins
Сообщение
#4
|
|
Во втором посте этой темы http://www.html.by/threads/30335-Kak-vydel...nkt-menju/page3
есть преобразование в чпу ссылки,только там еще помимо php используется само собой .htaccess |
|
|
DrDRED
|
Сообщение
#5
|
|
Короче очень много гуглил, нашел вот эту полезную ссылочкуhttp://www.softmaker.kz/articles/php/nastr...chelovekom.html
там описано практически то что мне надо, но все равно вопрос остался. можно ли для каждой ссылки прописать отдельное правило, чтобы например index.php?id=1 ==> в браузере отображался как сайт.ru/about, а index.php? id=2 ==> в браузере отображался как сайт.ru/contacts |
|
|
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
|
Сообщение
#7
|
|
так ладно, опустим предыдущий вопрос. Думаю надо сделать проще:
есть ссылки <a href="index.php?page=$id">ссылка</a>, что надо прописать в .htaccess, чтобы в браузере выводилась такая ссылка ==> сайт.ру/content/page/1, вот как то так |
|
|
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 из таблицы категории.Но это не суть важно. Просто вам осталось подстроить это все под себя.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Посоветуйте массажер для спины и шеи | 10 | Boymaster | 887 | Сегодня, 18:02 автор: Boymaster |
|
Если статья не в индексе Google - она уникальна или нет? | 6 | uahomka | 1561 | Сегодня, 15:37 автор: Arsenwenger |
|
Обучение Email Рассылкам + Софт Для Автоматизации (100к в сутки с сервера) | 10 | zennoboss | 4652 | Сегодня, 5:20 автор: Skyworker |
|
Какой % отказов нормален для сайта? | 14 | Aloof | 3380 | Вчера, 13:50 автор: Vmir |
|
Люблю творить! Статьи для вас Копирайтинг- моя жизнь! |
312 | Zoya83 | 190709 | Вчера, 7:51 автор: DimonX |
Текстовая версия | Сейчас: 24.4.2024, 19:24 |