Добро пожаловать, Гость!

 
Для нас. Форум для общения







Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Простой ЧПУ через .htaccess 
Автор Сообщение
Гость
Гость
Аватара пользователя

С нами: 7 лет, 4 месяца и 28 дней
Сообщения: 2
Репутация: 0
Ответить с цитатой
Автор темыСообщение Простой ЧПУ через .htaccess
####### ЧПУ - mod rewrite #########
RewriteEngine On
RewriteBase /

##### статичные страницы ########
RewriteRule ^contact/?$ contacts_mail.php [L]

##### динамические страницы ########
RewriteRule ^user/([^/]*)/?$ /usher_bookmarks.php?user=$1 [L]
# $1 - переменные нумеруются


10 май 2010, 11:57
Профиль
Админ
Аватара пользователя

С нами: 8 лет, 4 месяца и 8 дней
Сообщения: 223
Репутация: 101
Ответить с цитатой
Сообщение Re: Простой ЧПУ через .htaccess
Допустим у нас имеется скрипт "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]

Данный параметр предназначен для того, что бы человек видел, что происходит перенаправление. Т.е. в браузере будет заменяться адресная строка.
Но в начале .htaccess не забываем добавить:
RewriteEngine on


09 июл 2010, 16:17
Профиль ICQ WWW
Гость
Гость

С нами: 6 лет, 4 месяца и 16 дней
Сообщения: 4
Репутация: 0
Ответить с цитатой
Сообщение Re: Простой ЧПУ через .htaccess
Пожалуйста помогите разобраться чайнику. Сайт достался по наследству и многое переделал своими руками, хотя это и не мои обязанности.
Необходимо сделать ЧПУ для динамических страниц. Не пойму что я делаю не так. Хотя бы для одного типа станиц написать правило, остальные по аналогии.
Есть страница http://100shin.com.ua/shina.php?id=215- ... helin-XDE2, Понятно что окончаний после id большое множество (это как пример). Необходимо сделать ЧПУ что бы было так http://100shin.com.ua/shina/215-75-R17. ... -XDE2.html. Привожу текст своего .htaccess полностью:

php_flag register_globals on
ErrorDocument 404 /error.html
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^shina/([0-9]+)/([0-9]+).html$ shina.php?id=$1 [R]

Поясните что не так написано, пожалуйста.


11 май 2011, 11:49
Профиль
Админ
Аватара пользователя

С нами: 8 лет, 4 месяца и 8 дней
Сообщения: 223
Репутация: 101
Ответить с цитатой
Сообщение Re: Простой ЧПУ через .htaccess
RewriteEngine On
RewriteRule ^shina/(.*).html$ shina.php?id=$1 [L]

а если так?


12 май 2011, 18:56
Профиль ICQ WWW
Админ
Аватара пользователя

С нами: 8 лет, 4 месяца и 8 дней
Сообщения: 223
Репутация: 101
Ответить с цитатой
Сообщение Re: Простой ЧПУ через .htaccess
Чуть подправил.


12 май 2011, 20:03
Профиль ICQ WWW
Гость
Гость

С нами: 6 лет, 4 месяца и 16 дней
Сообщения: 4
Репутация: 0
Ответить с цитатой
Сообщение Re: Простой ЧПУ через .htaccess
Гад писал(а):
RewriteEngine On
RewriteRule ^shina/(.*).html$ shina.php?id=$1 [L]



за эти два дня перечитал кучу всего, сделал сам, почти как Ваш вариант, но чуть по-другому. Появилась другая проблему: если ставить ключ [L], то совсем не грузятся картинки, но при этом отображается в строке поиска исправленный УРЛ. А если ставить [R], то нормально всё грузится при наборе адреса http://100shin.com.ua/shina/215-75-R17.5-Michelin-XDE2 ссылка изменяется на прежнюю. Так сейчас есть, можете проверить и когда с поиска на моём сайте находишь нужную позицию, Урл сам не изменяется на "красивый". Я так и не понял где мне искать ответ. писать скрипт либо всё это можно реализовать с помощью mod re-writte?


12 май 2011, 20:50
Профиль
Админ
Аватара пользователя

С нами: 8 лет, 4 месяца и 8 дней
Сообщения: 223
Репутация: 101
Ответить с цитатой
Сообщение Re: Простой ЧПУ через .htaccess
Цитата:
Урл сам не изменяется на "красивый"

search.php надо смотреть, на предмет формирования урл.
а на счет картинок..попробуйте [L] иль [R] заменить на [QSA] или вовсе убрать.
RewriteRule ^shina/(.*).html$ shina.php?id=$1


12 май 2011, 21:10
Профиль ICQ WWW
Гость
Гость

С нами: 6 лет, 4 месяца и 16 дней
Сообщения: 4
Репутация: 0
Ответить с цитатой
Сообщение Re: Простой ЧПУ через .htaccess
Гад писал(а):
Цитата:
Урл сам не изменяется на "красивый"

search.php надо смотреть, на предмет формирования урл.
а на счет картинок..попробуйте [L] иль [R] заменить на [QSA] или вовсе убрать.
RewriteRule ^shina/(.*).html$ shina.php?id=$1


Я проделал ещё задолго до того как вы мне об этом сказали в файле search.phpьь заменил комбинацию echo '<a href="shina.php?id=' на echo '<a href="shina/'. Не знаю, почему-то это не принесло желаемого успеха.
Потому вопрос остался, как-то другие делают, что у них урлы при обращении к ним не меняются а остаются такими же ЧПУ
Из всех ключей нормально работает только [R]. И Вот что интересно если в файле .htaccess в строке RewriteRule ^shina/(.*)$ shina.php?id=$1 [R] вместо [R] поставить [L] иль [QSA] или вовсе убрать, то непосредственно при выбора позиции из каталога урл меняется и остаётся, так что пользователи могут его видеть, но при этом не грузятся никакие рисунки и при желании перейти куда-либо урл пишется типа http://100shin.com.ua/shina/index.php вместо http://100shin.com.ua/index.php. Как быть?


13 май 2011, 15:42
Профиль
Админ
Аватара пользователя

С нами: 8 лет, 4 месяца и 8 дней
Сообщения: 223
Репутация: 101
Ответить с цитатой
Сообщение Re: Простой ЧПУ через .htaccess
Цитата:
заменил комбинацию echo '<a href="shina.php?id=' на echo '<a href="shina/'.

будьте добры полную версию строки кода.. :)
Цитата:
но при этом не грузятся никакие рисунки и при желании перейти куда-либо урл пишется типа http://100shin.com.ua/shina/index.php вместо http://100shin.com.ua/index.php.

значит у вас адреса до картинок типа
<img src="/imgs/1.jpg">
<img src="/imgs/2.jpg">

поэтому обращение, после преобразования, идет на http://100shin.com.ua/shina/imgs/1.jpg где, конечно же, картинок нет
следует заменить на
<img src="http://100shin.com.ua/imgs/1.jpg">
<img src="http://100shin.com.ua/imgs/2.jpg">

то же самое и с index.php


13 май 2011, 19:15
Профиль ICQ WWW
Гость
Гость

С нами: 6 лет, 4 месяца и 16 дней
Сообщения: 4
Репутация: 0
Ответить с цитатой
Сообщение Re: Простой ЧПУ через .htaccess
Гад писал(а):
поэтому обращение, после преобразования, идет на http://100shin.com.ua/shina/imgs/1.jpg где, конечно же, картинок нет
следует заменить на
<img src="http://100shin.com.ua/imgs/1.jpg">
<img src="http://100shin.com.ua/imgs/2.jpg">

то же самое и с index.php


Огромное спасибо, всё работает. В файле .htaccess убрал ключи и в коде изменил ссылки не только к рисункам но и к станицам. Это касается и шаблоном. Огромное спасибо за помощь и за то что потратили своё время.


13 май 2011, 23:25
Профиль
Админ
Аватара пользователя

С нами: 8 лет, 4 месяца и 8 дней
Сообщения: 223
Репутация: 101
Ответить с цитатой
Сообщение Re: Простой ЧПУ через .htaccess
Без проблем! :) Обращайтесь, если что..


13 май 2011, 23:33
Профиль ICQ WWW
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 


Кто сейчас на конференции

Зарегистрированные пользователи: Ahref [Bot], Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Мобильный вид
Powered by phpBB® Forum Software © phpBB Group

[ Время выполнения: 0.121s | 41 Запросов | GZIP : Вкл ]