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


Партнерская программа Kredov

  • Закрытая тема Тема закрыта

ЧПУ в PHP

#1 Vialls

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

Отправлено 28 Июль 2008 - 08:26

ЧПУ в PHP

Для создания ЧПУ (человеку понятных URL) используется модуль Apache - "mod_rewrite". Он позволяет незаметно для пользователя переадресовывать с одного URL на другой.

Mod_rewrite по умолчанию идет в комплекте с сервером Apache, поэтому устанавливать его нет необходимости. Но он почти всегда выключен, поэтому его надо включить с помощью файла ".htaccess":
RewriteEngine on
Данной строкой мы включили mod_rewrite. Теперь нужно настроить перенаправление.

Допустим у нас имеется скрипт "articles.php", которому в GET параметре должно передаваться ID категории и ID статьи. Т.е.:
articles.php?category=5&article=235
Нам нужно добиться следующего вида URL:
articles/5/235.html
Для этого в конец файла ".htaccess" пишем строку:
RewriteRule ^articles/([0-9]+)/([0-9]+).html$ articles.php?category=$1&article=$2
Между символами "^" и "$" заключается регулярное выражение, которое описывает ЧПУ, в скобках идут передаваемые параметры. Далее идет страница, на которую будет перенаправляться наш ЧПУ. $1 значит первый параметр, который указан в скобках регулярного выражение, $2 - второй и т.д. Их может быть бесконечное множество.

Так-же перенаправление, может принимать разные параметры. Я знаю только, один, так как в других пока не нуждался. Этот параметр - [R], добавляется в конце условия перенаправления, т.е.:
RewriteRule ^articles/([0-9]+)/([0-9]+).html$ articles.php?category=$1&article=$2 [R]
Данный параметр предназначен для того, что бы человек видел, что происходит перенаправление. Т.е. в браузере будет заменяться адресная строка.

 

 

  • 0

#2 Xap

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

Отправлено 28 Июль 2008 - 11:11

То есть это настраивается только для одного url или же если это прописать, то так будут работать все url?
  • 0

#3 Vialls

Vialls
    Topic Starter
  • Пользователь
  • 581 сообщений
  • Репутация: 1

Отправлено 28 Июль 2008 - 11:12

Настраивается жестко для одного. :)
  • 0

#4 Xap

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

Отправлено 28 Июль 2008 - 11:16

А вот у меня Joomla. И все url такого паршивого формата. Могу ли я как-то сделать, чтобы url были ЧПУ (все url)
  • 0

#5 Vialls

Vialls
    Topic Starter
  • Пользователь
  • 581 сообщений
  • Репутация: 1

Отправлено 28 Июль 2008 - 11:42

Да, но там еще в скрипте, где-то надо править, что бы он генерировал ЧПУ ссылки, а не корявые.
  • 0

#6 Xap

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

Отправлено 28 Июль 2008 - 12:10

Вообщем я так понимаю, это бесперспективно. Лучше уж ставить на Drupal или Wordpress
  • 0

#7 Vialls

Vialls
    Topic Starter
  • Пользователь
  • 581 сообщений
  • Репутация: 1

Отправлено 28 Июль 2008 - 12:12

Вам решать :huh:. По идее должен быть модуль к Joomla, что-бы генерились ЧПУ ссылки. А .htaccess самому прописывать вроде. Точно не знаю, т.к. уже почти год не использую CMS (пишу свои)


  • 0

#8 FordogeN

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

Отправлено 20 Сентябрь 2008 - 23:00

ЧПУ настраивается в файле .htaccess, а не в php!
Скоро возьмусь за скриптик который для контроля ЧПУ через админку...
  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



#9 Xap

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

Отправлено 21 Сентябрь 2008 - 15:53

А какая нагрузка на сервак будет после Вашего скриптика?
  • 0

#10 FordogeN

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

Отправлено 21 Сентябрь 2008 - 16:49

нагрузка на сервак идет только во время изменения через админку... в файл .htaccess просто будет записываться вся конфигурация ЧПУ

проще говоря - нагрузки почти ни какой.
  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


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