Перейти к содержимому



Универсальный скрипт ЧПУ для сайтов

#1 Maverick

Maverick
  • Модератор
  • 87 сообщений
  • Репутация: 11
0

Отправлено 06 Декабрь 2011 - 11:50

Решил выложить универсальный скрипт ЧПУ для сайтов, с помощью которого работа с ЧПУ будет проще и быстрее.

в htaccess добавляем:
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteCond %{REQUEST_URI} (.*/[^/.])($|\?)
RewriteRule .* %1/ [R,L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php [NC,QSA,L]
RewriteCond %{HTTP_REFERER} (weight) [NC,OR]
RewriteCond %{HTTP_REFERER} (drugs) [NC]
RewriteRule ^.htaccess$ - [F]


PHP класс чпу:
class CRequest{
var $arrRequest = array(); //массив параметров запроса

function CRequest($request='') // конструктор класса
{
$this->arrRequest = CRequest::GetRequest($request);
}

function GetRequest($request){
$arrRequest = array();
// Уберем данные передынные через GET
$request = preg_replace('@\?(.*)$@si','',$request);
// Уберем первый и последний слэшь
$request = preg_replace('@^/@si','',preg_replace('@/$@si','',$request));

//Полный массив запроса
$arrRequest = explode('/', $request);
if(!isset($arrRequest[0])) $arrRequest[0] = '';
if(!isset($arrRequest[1])) $arrRequest[1] = '';
if(!isset($arrRequest[2])) $arrRequest[2] = '';
return $arrRequest;
}
}


Этот класс подключаем в нужный файл, например index.php (у меня обычно через него формирование url формируется и переходы по страницам)
$request = new CRequest($_SERVER['REQUEST_URI']);
#- тут передает первый параметр ссылки например: http://site.com/news/ - news будет первый параметром.
$first=$request->arrRequest[0];
#- это будет например id новости, пример: http://site.com/news/id-1/
$id = (preg_match('/id-([0-9]{1,10})$/i',$request->arrRequest[1],$matches)) ? (int)$matches[1] : 0;
#- это будет например номер страницы(для на навигации), пример: http://site.com/news/page-1/
$page = (preg_match('/page-([0-9]{1,10})$/i',$request->arrRequest[1],$matches)) ? (int)$matches[1] : 0;

 

 

  • 0

#2 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 06 Декабрь 2011 - 12:23

покажи сайты, где этот скрипт работает
  • 0

#3 bumer

bumer
  • Пользователь
  • 502 сообщений
  • Репутация: 0

Отправлено 06 Декабрь 2011 - 15:18

Работает со всеми движками и компонентами? Интересует связка джомла+виртуемарт
  • 0

#4 Maverick

Maverick
    Topic Starter
  • Модератор
  • 87 сообщений
  • Репутация: 11

Отправлено 06 Декабрь 2011 - 15:23

ухх. ну и спросили) я его использую только для самописных сайтов.
пример: http://voorby.com/
  • 0

#5 Banderas

Banderas
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 06 Декабрь 2011 - 16:38

Спасибо, попробую...)))

кстати, недоработка _http://finsection.com/?referral=voorby - посмотрите на ссылку
  • 0


#6 Maverick

Maverick
    Topic Starter
  • Модератор
  • 87 сообщений
  • Репутация: 11

Отправлено 06 Декабрь 2011 - 17:23

проект закрыт, так что не суть ;) это как бы демо (для продажи скрипта)


  • 0


Оформление форума – IPBSkins.ru