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

Сервис обмена электронных валют


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

ЧПУ в PHP

#11 KURT [197BD]

KURT [197BD]
  • Пользователь
  • 31 сообщений
  • Репутация: 0
3

Отправлено 25 Ноябрь 2008 - 11:58

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

насколько я помню в настройках Джумлы есть сеттингс "Дружественные ссылки"
а вот и ссылочка =)
  • 0

#12 Гость_AlMaster_*

Гость_AlMaster_*
  • Гости

Отправлено 11 Январь 2009 - 01:00

Не подскажете, как можно сделать так, что бы второй параметр был не обязательным?

т.е. к примеру код:
RewriteEngine on
RewriteRule ^([a-zA-Z_0-9]+)/([0-9])$ index.php?module=$1&id=$2

видит только ссылки по типу -
/module_name/0

а при обращении к "руут директории" модуля - условие уже не действует -
/module_name

Пускай он будет даже заносить в переменную id какое либо значение, но не игнорировать весь запрос, если последняя переменная не задана.

Заранее спасибо.
  • 0

#13 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 11 Январь 2009 - 22:15

Можно сделать с помощью двух правил
RewriteEngine on

RewriteRule ^([a-zA-Z_0-9]+)[/]?$ index.php?module=$1&id=0
RewriteRule ^([a-zA-Z_0-9]+)/([0-9])$ index.php?module=$1&id=$2

А вот выписка по поводу флагов

'last|L' (последнее правило)
Остановить процесс преобразования на этом месте и не применять больше никаких правил преобразований. Это соответствует оператору last в Perl или оператору break в языке C. Используйте этот флаг для того, чтобы не преобразовывать текущий URL другими, следующими за этим, правилами преобразований. К примеру, используйте это для преобразования корневого URL из ('/') в реальный, например, '/e/www/'

Лучше его всё же подставить к первой строке так [L]

Кстати ваши URL не практичны... А если я напишу молудь, которого нету, наобум в строке браузера? Что у вас будет?
  • 0

#14 Гость_AlMaster_*

Гость_AlMaster_*
  • Гости

Отправлено 16 Январь 2009 - 22:32

Спасибо за ответ, посмотрю.

Кстати ваши URL не практичны... А если я напишу молудь, которого нету, наобум в строке браузера? Что у вас будет?


Ну это только пример. А то, что модуля не будет - это дело самого скрипта, в нем проверка и вывод ошибок если что.
А Rewrite тут только ссылки преобразовывает же...

Если я что-то не так понял насчет не практичных URL, то поясните, как можно иначе? Всегда же пользователь может вписать свои данные в адресной строке , и результат который он получит зависит только от скрипта и проверок в нем.
  • 0

#15 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 17 Январь 2009 - 00:50

AlMaster, вы правы! Все данные нужно проверять и перепроверять. Если будете проверять и выводить ошибки, то ничего страшного не произойдет.
  • 0

#16 Troy

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

Отправлено 23 Июль 2009 - 18:22

В php файлах генерируется ссылка на новость (к примеру) вот её надо исправлять

Мне щас больше нравится работать без GETов , урл обрабатывает роутер ,а htaccess выглядит так
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php

  • 0

#17 php-tips

php-tips
  • Пользователь
  • 4 сообщений
  • Репутация: 0

Отправлено 15 Декабрь 2009 - 10:03

Странное выражение "ЧПУ" - уж лучше тогда "ППУ" (программисту понятные урлы), хотя еще правильнее - "РПУ" (роботу понятные урлы)
Поясню - люди (пользователи) вообще редко смотрят на урл.
им без разницы http://www.masterweb...758-chpu-v-php/ или http://www.masterweb...owtopic-758.php

Статичные урлы нужно подсовывать роботам только ради ключевика - чтобы повысить релевантность страницы запросу.
А урлы вида /module_name/ не имеют особого смысла, ИМХО.

Подход Troy - самый правильный, поскольку дает программисту максимальную гибкость.
  • 0

#18 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 16 Декабрь 2009 - 23:46

php-tips, всё зависит от подхода программирования. Не сомневаюсь что с роутером работать удобно.
  • 0

#19 aspide

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

Отправлено 09 Май 2010 - 08:19

Сорри что поднимаю старую тему  :( . Как включить mod_rewrite в Денвере?
  • 0

#20 reaboom

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

Отправлено 09 Май 2010 - 09:23

В httpd.conf раскомментируйте строку:
#LoadModule rewrite_module modules/mod_rewrite.so

  • 0

robot

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


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