Обработка ЧПУ не через .htaccess
Сидел вчера весь день дома, т.к. простудился. Сидел и работал над маленькими проектиками. И вдруг решил написать класс для ЧПУ, который бы мог заменить несколько строчек в .htaccess, где можно было лишь оставить одно правило RewriteRule . /index.php [L]. Конечно, полностью универсального варианта для любых ссылок не придумаешь, но для моего вариант вполне подходит.
class _getLinks {
function _parser(){
$furl = parse_url($_SERVER[’REQUEST_URI’]);
$url = explode(’/’, $furl[’path’]);
$url = array_filter($url, "strlen");
$url = array_filter($url, "urlencode");
$url = array_reverse($url);
return $url;
}
function _getCategory() {
$res = $this->_parser();
return $res[1];
}
function _getTitle() {
$var = $this->_parser();
$res = preg_split("/[.\\s]/",$var[0]);
return $res[0];
}
}
Можно использовать ссылки вида: http://server.com/category/subcategory/title.html и получать, соответственно, url категории и url новости, которые уже можно прогонять по базе…
P.S. Подумал немного… Абсолютно бесполезная и ненужная фигня получилася :(
22.02.2007 // 05:54
Віктар написал(а):
А я наадварот як мага болей перакладваю на .htaccess. І нават разбор URL, і праверка на падтрымку XHTML і шмат чаго іншага – там.
ответить
22.02.2007 // 05:55
Віктар написал(а):
Так… І … Пісаў гэты камент. "Хатстаронка" напісаў "http://victorgr.livejournal.com/" (са слэшам у канцы). Дык мне скрыпт напісаў, што "Гэты адрас няправільны". Хіба ж?
ответить
February 22nd, 2007 // 09:42
Slaver ответил(а):
Усё ж, чым больш файл .htaccess, тым больш ён тармазіць…
А наконт урлаў… Там памылка ў рэгулярке. Толькі нядаўна знайшоў, але яшчэ не выправіў :(
ответить
23.02.2007 // 12:24
Віктар написал(а):
Ці ж?
Ёсьць дакладныя зьвесткі?
Мне здаецца Apache апрацуе .htaccess значна хутчэй за скрыпт (ну, гэта ня тычыцца mod_rewrite, так). Але я часта абыходжуся проста SetEnvIf.
ответить
28.02.2007 // 01:07
Cap написал(а):
Блин!.. А вас тут оказываться трудно понять… Может по-русски будем дружно писать? – Ну это просто маленькое мое желание!
ответить
February 28th, 2007 // 01:10
Slaver ответил(а):
Итак блог по-русски, в отличие от livejournal. А вот комменты могут быть на любом языке, которым владею, хотя бы немного :)
ответить
February 28th, 2007 // 04:47
Cap ответил(а):
Не я конечно понимаю, но блин, тут хрен чего нормально поймешь в комментариях…
ответить
February 28th, 2007 // 04:50
Cap ответил(а):
p.s. Слав, настрой пожалуйста кнопку "Добавить", а то иногда думаешь, а комментарий на добавку ушел или нет?!.. Как стоял так и стоит перец с надписью "Добавить" ужас.
ответить
14.12.2008 // 17:15
=) написал(а):
>P.S. Подумал немного… Абсолютно бесполезная и ненужная фигня получилася :(
ну и дурак, не везде апач есть (nginx например)
ответить
9.01.2009 // 20:10
aka-haxy.blogspot.com/ написал(а):
Не такая уж и бесполезная. Просто идею надо развивать. Можно например перед категорией можно вставлять название приложение, к которому отноститься страница (то бишь новости, статьи, FAQ, ну и т.п.)
ответить
January 9th, 2009 // 20:11
Slaver ответил(а):
Ну я уже 100 раз успел переписать этот класс… до неузнаваемости :)
ответить
6.10.2009 // 16:20
Виталий написал(а):
Раз переписал – можешь поделиться. буду признателен если на мыло ))
ответить