сайт.ру/page=1
и это не совсем гуд. Хочу зделать ЧПУ, да не простое а чтобы бралось из базы название статьи, на лету переделывалось в транслит и подставлялось в адресную строку. Ну например есть у меня на сайте страница которая доступна по адресу сайт.ру/page=1 на этой странице статья с названием ну например "машины" . Ну вот мне нужно заменить сайт.ру/page=1 на сайт.ру/mashiny.html
вобщем выдернуть и перекодировать в транслит я смогу. А вот что дальше? Один человек сказал что это одним httases зделать невозможно, нужно функцию на php писать. А что в ней писать? мне бы понять принцип, код бы я написал сам. Вобщем нужна ваша помощь.
Спустя 7 минут, 17 секунд (30.05.2011 - 13:34) Zerstoren написал(а):
1е что вам нужно - это запарсить УРЛ,
простая функция
теперь вы можете его дергать по сегментам. т.е.
uri(1)
вернет первый кусок урла.
uri(2) второй и т.д.
В базе урлы должны хранится. Т.е. именно сегмент типа mashiny
без приставки .html | .php
Делаете запрос WHERE uri = "mashiny"
В общем близко этого.
Я так понял что с .htaccess вы уже разобрались
и еще, для полей uri давайте метку UNIQUE, Даб в будущем не возникло проблем с дублированием
простая функция
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
Это если у вас скрипт запускается не только через index.php (точка входа не одна)
если так, то можно обращаться к GET массиву.
Я вам советую понять принцип действия MVC фреймворков и посмотреть как там устроен ЧПУ, вместе с .htaccess
К примеру .htaccess
RewriteEngine On
RewriteBase /
RewriteRule ^([^/]+).[^html]$ index.php?action=$1 [L]
Это если у вас скрипт запускается не только через index.php (точка входа не одна)
если так, то можно обращаться к GET массиву.
Я вам советую понять принцип действия MVC фреймворков и посмотреть как там устроен ЧПУ, вместе с .htaccess