ЧПУ для сайта на PHP

Автор Тема: ЧПУ для сайта на PHP  (Прочитано 3372 раз)

Оффлайн xGhostАвтор темы

  • Бизнес оценка: (0)
  • Постоялец
  • ***
  • СПАСИБО: 49
  • Сообщений: 235
  • Карма: 4
  • Пол: Мужской
    • Просмотр профиля
    • Фотопутешествия

Оффлайн xGhostАвтор темы

  • Постоялец
  • ***
ЧПУ для сайта на PHP
« : 17-09-2013, 10:39:34 »
Есть сайт на самописном движке который http://mondo.ho.ua/ ссылки у которого имеют вид /index.php?cat=3. Хочу сделать ЧПУ. Естественно, разработчик в свое время не позаботился ни о чем, посему в админке можно только картинки добавлять, даже Description нужно редактировать в отдельно взятом ХТМЛ файле.

Прошу помочь с созданием ЧПУ для сайта. Насколько я понимаю нужно сделать следующее:

1. В .htacess прописать правило для Мод Рерайт
2. Создать какой-то php файл в котором будут находится "инструкции" заменяющие index.php?cat=30 на определенное слово. Например, при 3 заменять на mebel

Вот со вторым пунктом проблема. Я попробовал сделать такой файл, но не понимаю как из .htacess туда ссылаться. Или я  вообще неправильно делаю. Доходчивых инструкций не нашел, все больше под стандартные ЦМС с админкой написано. Для справки, ПХП я не знаю, ибо вообще не программист. Нанимать программиста для такой задачи не получится, у заказчика бюджет мизерный.

Пожалуйста подскажите либо литературу, либо, если есть, готовый код


Оффлайн files

  • Бизнес оценка: (0)
  • Пользователь
  • **
  • СПАСИБО: 24
  • Сообщений: 84
  • Карма: 1
  • Пол: Мужской
  • Приведу в порядок Ваш сайт
    • Просмотр профиля
    • Типичный Интернетчик

Оффлайн files

  • Пользователь
  • **
  • Доп. информация
    • Бизнес оценка: (0)
    • СПАСИБО: 24
    • Сообщений: 84
    • Карма: 1
    • Пол: Мужской
    • Приведу в порядок Ваш сайт
      • Просмотр профиля
      • Типичный Интернетчик
Re: ЧПУ для сайта на PHP
« Ответ #1 : 17-09-2013, 13:23:06 »
По моему, тут ответ исчерпывающий

Цитировать
Итак, создаем новый .htaccess, открываем его любым текстовым редактором и добавляем строчку:

RewriteEngine On

Она необходима, чтобы правила, которые мы далее будем добавлять, работали. Как бы включаем перезапись настроек Apache. Если файл .htaccess уже существует на сервере, то вышеуказанную строчку и дальнейшие правила по настройке ЧПУ размещаем обязательно ниже этой строчки.

Есть три типа основных URL’ов и, соответственно, три способа превращения их в ЧПУ:


Простые URL, вида: http://www.site.ru/page.html

Чтобы сделать из такого URL ЧПУ вида: http://www.site.ru/page/, необходимо добавить в .htaccess такие строки:

RewriteRule ^page/$ page.html [L]

А чтобы у поисковых систем не возникло желания расклеить этот URL на URL со слэшем в конце и без него, модернизируем код:

RewriteRule ^page$ page/ [R=301,L]
 RewriteRule ^page/$ page.html [L]


URL’ы с GET-параметрами, вида: http://www.site.ru/index.php?id=1&cid=17

Здесь помимо основного файла страницы необходимо «отловить» еще и передаваемые GET-параметры. В URL из примера выше, «id» и «cid» — это параметры, которые имеют значения 1 и 17 соответственно. Амперсанд «&» разделяет параметры друг от друга.

Чтобы сделать из такого URL ЧПУ вида: http://www.site.ru/shkaf/, пишем строки:

RewriteRule ^shkaf$ shkaf/ [R=301,L]
 RewriteRule ^shkaf/$ index.php?id=1&cid=17 [L]

Если ничего не работает (скорее всего, ввиду особенностей сервера), пишем по-другому:

RewriteCond %{QUERY_STRING} ^id=1&cid=17$
 RewriteRule ^index.php$ http://www.site.ru/shkaf? [R=301,L]
 RewriteRule ^shkaf/$ http://www.site.ru/shkaf? [R=301,L]
 RewriteRule ^shkaf id=1&cid=17

Но при таком раскладе данный скрипт будет постоянно перенапрявляться, и этот цикл никогда не закончится, о чем браузер любезно вам сообщит. Для того, чтобы это предотвратить, модернизируем строку:

RewriteRule ^shkaf id=1&cid=17&хxх=1

Здесь мы ко всем действующим параметрам для данного URL добавляем параметр «хxх», который заведомо никогда этим скриптом не обрабатывается.


ЧПУ вида: http://www.site.ru/old_page/

Тут все проще. Открываем существующий .htaccess, находим там правило, которое отвечает за ЧПУ «old_page» и по нему узнаем реальный URL, который маскируется данным ЧПУ. Далее вставляем наше правило выше этого по одной из описанной схеме п.2.

Существующее правило может быть отражено, например, в таком виде:

RewriteRule ^([A-Za-z0-9-]+)/?$ page.php?addres=$1 [L]

Или в ином:

RewriteRule ^old_page/?$ page.php?addres=old_page [L]

Выше этого правила добавляем строки:

RewriteRule ^old_page/?$ new_page/ [R=301,L]
 RewriteRule new_page$ new_page/ [R=301,L]
 RewriteRule ^new_page/$ page.php?addres=old_page [L]

Источник: http://seva-oshnikov.ru/chpu-htaccess/

Оффлайн xGhostАвтор темы

  • Бизнес оценка: (0)
  • Постоялец
  • ***
  • СПАСИБО: 49
  • Сообщений: 235
  • Карма: 4
  • Пол: Мужской
    • Просмотр профиля
    • Фотопутешествия

Оффлайн xGhostАвтор темы

  • Постоялец
  • ***
Re: ЧПУ для сайта на PHP
« Ответ #2 : 19-09-2013, 15:36:48 »
Спасибо, действительно здесь проще описано.

То есть для каждой страницы нужно прописать правило?

RewriteRule ^shkaf$ shkaf/ [R=301,L]
RewriteRule ^shkaf/$ index.php?id=1&cid=17 [L]

А если страниц больше сотни будет? Я попробую пока с основными разделами.
 

Оффлайн xGhostАвтор темы

  • Бизнес оценка: (0)
  • Постоялец
  • ***
  • СПАСИБО: 49
  • Сообщений: 235
  • Карма: 4
  • Пол: Мужской
    • Просмотр профиля
    • Фотопутешествия

Оффлайн xGhostАвтор темы

  • Постоялец
  • ***
Re: ЧПУ для сайта на PHP
« Ответ #3 : 20-09-2013, 20:48:06 »
По моему, тут ответ исчерпывающий...

Не помогло. Написал

RewriteEngine On
RewriteCond %{QUERY_STRING} ^cat=30$
RewriteRule ^index.php$ http://mondo.ho.ua/kuhni? [R=301,L]
RewriteRule ^shkaf/$ http://mondo.ho.ua/kuhni? [R=301,L]
RewriteRule ^shkaf cat=30
RewriteRule ^shkaf cat=30&хxх=1

Чтобы из http://mondo.kiev.ua/index.php?cat=30 сделать http://mondo.ho.ua/kuhni

И получил в ответ URL http://mondo.ho.ua/kuhni и ошибку 404... (((

Остальные варианты не работают

Оффлайн Сергей Коча

  • Бизнес оценка: (0)
  • Пользователь
  • **
  • СПАСИБО: 11
  • Сообщений: 51
  • Карма: 3
    • Просмотр профиля
    • MobiCot - PHP Mobile Content Management Framework

Оффлайн Сергей Коча

  • Пользователь
  • **
Re: ЧПУ для сайта на PHP
« Ответ #4 : 21-09-2013, 01:03:21 »
Я конечно извиняюсь, но мне интересно, у меня типовая ссылка типа этого:
http://www.cotonti.mobi/page.php?al=short_responsive_solutions&pg=columns_and_bbcode_photo&go#page
Как бы желательно, чтобы она выглядела ЧПУ или этого достаточно?
http://www.cotonti.mobi - MobiCot - PHP Mobile Content Management Framework


Оффлайн xGhostАвтор темы

  • Бизнес оценка: (0)
  • Постоялец
  • ***
  • СПАСИБО: 49
  • Сообщений: 235
  • Карма: 4
  • Пол: Мужской
    • Просмотр профиля
    • Фотопутешествия

Оффлайн xGhostАвтор темы

  • Постоялец
  • ***
Re: ЧПУ для сайта на PHP
« Ответ #5 : 21-09-2013, 10:59:04 »
Я конечно извиняюсь, но мне интересно, у меня типовая ссылка типа этого:
http://www.cotonti.mobi/page.php?al=short_responsive_solutions&pg=columns_and_bbcode_photo&go#page
Как бы желательно, чтобы она выглядела ЧПУ или этого достаточно?

В том то и дело, что считается и не безосновательно, что ЧПУ Гугл любит гораздо больше чем ".php?"

Добавлено: 21-09-2013, 18:26:13

Решил проблему добавлением такого

ErrorDocument 404 http://www.site.ru/404.html
 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php [L,QSA]

Не знаю что именно из этого помогло, но помогло

Добавлено: 21-09-2013, 18:32:46

Решил проблему добавлением такого
А нет, поспешил. Это же я просто при ошибке возвращаю на главную(((
« Последнее редактирование: 21-09-2013, 18:32:46 от xGhost »

Оффлайн xGhostАвтор темы

  • Бизнес оценка: (0)
  • Постоялец
  • ***
  • СПАСИБО: 49
  • Сообщений: 235
  • Карма: 4
  • Пол: Мужской
    • Просмотр профиля
    • Фотопутешествия

Оффлайн xGhostАвтор темы

  • Постоялец
  • ***
Re: ЧПУ для сайта на PHP
« Ответ #6 : 27-09-2013, 10:32:59 »
В общем, раз никто помочь с вопросом не может, буду продвигать без ЧПУ :'(

Оффлайн Андрей88

  • Бизнес оценка: (0)
  • КМС
  • *****
  • СПАСИБО: 905
  • Сообщений: 1693
  • Карма: 219
  • Пол: Мужской
  • Андерс
  • Награды Мастер поисковой оптимизации Автор самой интересной темы
    • Просмотр профиля
    • Создай сам
  • Доп. информация
    • Бизнес оценка: (0)
    • СПАСИБО: 905
    • Сообщений: 1693
    • Карма: 219
    • Пол: Мужской
    • Андерс
    • Награды Мастер поисковой оптимизации Автор самой интересной темы
      • Просмотр профиля
      • Создай сам
Re: ЧПУ для сайта на PHP
« Ответ #7 : 27-09-2013, 10:44:44 »
В общем, раз никто помочь с вопросом не может, буду продвигать без ЧПУ :'(
Поясни это заказчику! А тебе запариваться не стоит по этому вопросу!
YouTube — уроки программирования (Front End).

Оффлайн xGhostАвтор темы

  • Бизнес оценка: (0)
  • Постоялец
  • ***
  • СПАСИБО: 49
  • Сообщений: 235
  • Карма: 4
  • Пол: Мужской
    • Просмотр профиля
    • Фотопутешествия

Оффлайн xGhostАвтор темы

  • Постоялец
  • ***
Re: ЧПУ для сайта на PHP
« Ответ #8 : 11-10-2013, 22:35:52 »
Поясни это заказчику! А тебе запариваться не стоит по этому вопросу!
Заказчику все равно как там выглядят ссылки. Ему важно чтобы звонили "с сайта"


 

Похожие темы

  Тема / Автор Ответов Последний ответ
4 Ответов
2171 Просмотров
Последний ответ 16-08-2011, 07:11:05
от shabananton
11 Ответов
8149 Просмотров
Последний ответ 09-06-2013, 11:48:19
от Ametist
2 Ответов
2384 Просмотров
Последний ответ 24-04-2016, 17:56:30
от HOOD
23 Ответов
3658 Просмотров
Последний ответ 22-05-2013, 19:51:16
от intelwond
9 Ответов
2995 Просмотров
Последний ответ 21-11-2013, 12:19:19
от Lisavad