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

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







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

С нами: 7 лет, 6 месяцев и 25 дней
Сообщения: 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 лет, 6 месяцев и 5 дней
Сообщения: 221
Репутация: 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 лет, 6 месяцев и 13 дней
Сообщения: 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 лет, 6 месяцев и 5 дней
Сообщения: 221
Репутация: 101
Ответить с цитатой
Сообщение Re: Простой ЧПУ через .htaccess
RewriteEngine On
RewriteRule ^shina/(.*).html$ shina.php?id=$1 [L]

а если так?


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

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


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

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

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


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

С нами: 6 лет, 6 месяцев и 13 дней
Сообщения: 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 лет, 6 месяцев и 5 дней
Сообщения: 221
Репутация: 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 лет, 6 месяцев и 13 дней
Сообщения: 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 лет, 6 месяцев и 5 дней
Сообщения: 221
Репутация: 101
Ответить с цитатой
Сообщение Re: Простой ЧПУ через .htaccess
Без проблем! :) Обращайтесь, если что..


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


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

Зарегистрированные пользователи: нет зарегистрированных пользователей


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

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

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