[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: URL из базы
milos
Добрый день! Вобщем делаю сайт. Страници сайта выглядят так
сайт.ру/page=1
и это не совсем гуд. Хочу зделать ЧПУ, да не простое а чтобы бралось из базы название статьи, на лету переделывалось в транслит и подставлялось в адресную строку. Ну например есть у меня на сайте страница которая доступна по адресу сайт.ру/page=1 на этой странице статья с названием ну например "машины" . Ну вот мне нужно заменить сайт.ру/page=1 на сайт.ру/mashiny.html
вобщем выдернуть и перекодировать в транслит я смогу. А вот что дальше? Один человек сказал что это одним httases зделать невозможно, нужно функцию на php писать. А что в ней писать? мне бы понять принцип, код бы я написал сам. Вобщем нужна ваша помощь.



Спустя 7 минут, 17 секунд (30.05.2011 - 13:34) Zerstoren написал(а):
1е что вам нужно - это запарсить УРЛ,

простая функция

function uri($n) {
$uri = explode('/',$_SERVER['REQUEST_URI']);
if( isset($uri[$n]) ) {
return $uri[$n];
}else{
return null;
}
}

// Данный пример работает без приставки .html
//Доработайте, даб удалялся .html



теперь вы можете его дергать по сегментам. т.е.
uri(1)
вернет первый кусок урла.
uri(2) второй и т.д.


В базе урлы должны хранится. Т.е. именно сегмент типа mashiny
без приставки .html | .php

Делаете запрос WHERE uri = "mashiny"
В общем близко этого.

Я так понял что с .htaccess вы уже разобрались

и еще, для полей uri давайте метку UNIQUE, Даб в будущем не возникло проблем с дублированием

Спустя 27 минут, 53 секунды (30.05.2011 - 14:02) milos написал(а):
Немного непонял. Строку парсим чтоб выдрать id, ну номер страници то что после знака "=" . Потом в базе делаем запрос. С нужным id. Ну итог я получил нужное мне имя страници без расширения-сохранил ее в переменную $url. Но на счет htаcces вы были неправы, с ним у меня неладиться. Ну я предполагаю что в нем нужно как то заменить урл на $url

Спустя 1 час, 21 минута, 45 секунд (30.05.2011 - 15:24) Zerstoren написал(а):
Так, если вы хотите ЧПУ, забудьте про айди в фронтенде, оно понадобится только для админки.

К примеру .htaccess

RewriteEngine On
RewriteBase /
RewriteRule ^([^/]+).[^html]$ index.php?action=$1 [L]


Это если у вас скрипт запускается не только через index.php (точка входа не одна)

если так, то можно обращаться к GET массиву.

Я вам советую понять принцип действия MVC фреймворков и посмотреть как там устроен ЧПУ, вместе с .htaccess

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.