Форум программистов, компьютерный форум, киберфорум
Apache, htaccess
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
 Аватар для Evgeniy71rus
32 / 32 / 5
Регистрация: 15.11.2010
Сообщений: 167

Настройка ЧПУ для двух правил

04.02.2013, 22:00. Показов 2821. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день всем.
Второй день разбираюсь с ЧПУ (Rewrite)
Нужно http://www.wellsait.ru/page/html преобразовать в http://www.wellsait.ru/page.php?url=html
и
http://www.wellsait.ru/katalog/html преобразовать в http://www.wellsait.ru/katalog.php?page=html
файл .htaccess
PHP
1
2
3
4
5
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/katalog/(.*)$
RewriteRule ^katalog\/(.*)/?$ katalog.php?page=$1 [L,QSA]
RewriteCond %{REQUEST_URI} ^/page/(.*)$
RewriteRule ^page\/(.*)/?$ page.php?url=$1 [L,QSA]
При этом работает только wellsait.ru/page/
Подскажите, что не так?
Нужно, чтобы работало для двух страниц.
Спасибо.

Добавлено через 4 часа 5 минут
Вобщем, как-то всё само сабой и заработало.
Вот ещё хорошая подробная статья по работе mod_rewrite
http://habrahabr.ru/company/sp... og/129560/

Добавлено через 4 часа 16 минут
Теперь следующая проблема:
файл .htaccess
PHP
1
2
RewriteCond %{QUERY_STRING} ^url=([_a-z]*)$ 
RewriteRule ^page\.php$ /page/%1 [R=301,L]
на выходе: http://www.wellsait.ru/page/html?page=html
Как избавится от QUERY_STRING (?page=html) в конце строки?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.02.2013, 22:00
Ответы с готовыми решениями:

Настройка чпу для самописного скрипта
Каким образом настроить обработку адресов для самописного скрипта??? На сайте есть каталог - /catalog/#раздел#/ Ссылка на товар...

Настройка 301 редиректа для ЧПУ страниц
У меня такая проблема. Интернет магазин на битриксе, переезжаем на ЧПУ страницы. Была структура на примере одного раздела -...

Настройка ЧПУ для вывода бренда и артикула товара
Как настроить ЧПУ так чтобы вместо названия товара выводился бренд и артикул как на этой ссылке: ...

24
 Аватар для Илья Федин
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
05.02.2013, 00:57
Цитата Сообщение от Evgeniy71rus Посмотреть сообщение
Теперь следующая проблема:
Зачем вам это???
0
 Аватар для Evgeniy71rus
32 / 32 / 5
Регистрация: 15.11.2010
Сообщений: 167
05.02.2013, 08:37  [ТС]
Чтобы ПС переиндексировали страницы, которые есть в индексе "page.php?url=html" редерект "page/html".
0
 Аватар для Илья Федин
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
05.02.2013, 11:51
Evgeniy71rus, Будет бесконечный редирект так как:
page/что-нибудь будет реврайтится на page.php?url=что-нибудь который будет редиректися на page/что-нибудь который будет реврайтится на page.php?url=что-нибудь который будет редиректися на page/что-нибудь который будет реврайтится на page.php?url=что-нибудь который будет редиректися на page/что-нибудь который...
И так бесконечно
1
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
05.02.2013, 11:59
Это и должно работать, других вариантов, насколько помню, нет.
Code
1
2
RewriteCond %{QUERY_STRING} ^url=([A-z]+)$ 
RewriteRule ^page\.php$ /page/%1 [R=301,L]
Илья Федин, извините, но не городите чушь про вечные редиректы, не должно их там быть
1
 Аватар для Илья Федин
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
05.02.2013, 12:01
Цитата Сообщение от KOPOJI Посмотреть сообщение
не городите чушь
Да, там же RewriteCond
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
05.02.2013, 12:05
Илья Федин, ..и?

Добавлено через 1 минуту

Не по теме:

у меня, наверное, неправильный сайт, если работает с редиректом подобного рода.. :facepalm:

0
 Аватар для Илья Федин
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
05.02.2013, 12:15
KOPOJI, И у меня не работает
Code
1
2
3
4
5
6
7
CharsetSourceEnc UTF-8
CharsetDefault CP866
RewriteEngine on
RewriteCond %{REQUEST_URI} ^\/$
RewriteRule ^.*$ dududududu:p.hihi
RewriteCond %{REQUEST_URI} ^\/dududududu:p\.hihi$
RewriteRule ^.*$ /
500 Internal Server Error

Добавлено через 2 минуты
Сделал так:
Code
1
2
3
4
5
6
7
CharsetSourceEnc UTF-8
CharsetDefault CP866
RewriteEngine on
RewriteCond %{REQUEST_URI} ^\/$
RewriteRule ^.*$ dududududu:p.hihi
RewriteCond %{REQUEST_URI} ^\/dududududu:p\.hihi$
RewriteRule ^.*$ / [R=301]
Неверное перенаправление на странице







Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.





Эта проблема может возникать при отключении или запрещении принятия кук.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
05.02.2013, 12:35
Илья Федин, посмотрите код, про который я писал, и затем посмотрите на свой.
0
 Аватар для Илья Федин
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
05.02.2013, 12:43
KOPOJI,
Можно прямо? Я не понимаю
0
 Аватар для Evgeniy71rus
32 / 32 / 5
Регистрация: 15.11.2010
Сообщений: 167
05.02.2013, 12:49  [ТС]
Спасибо, я наверно понял
За счет того, что в конце прописывается QUERY_STRING (?page=html) зациклевание и не происходит.
Если убрать (добавить "?")
PHP
1
RewriteRule ^page\.php$ /page/%1? [R=301,NC,L]
то получаем Moved Permanently (Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится)
Добавил "&"
PHP
1
RewriteRule ^page/(.*)/?$ page.php?url=$1& [L,QSA]
Всё заработало как надо.
Хотелось бы услыжать мнение профи:
Стоит ли с этим заморачиваться на сервере (пока это на денвере) и принесет ли это положительный результат?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
05.02.2013, 14:36
Илья Федин,
Кликните здесь для просмотра всего текста
Цитата Сообщение от Илья Федин Посмотреть сообщение
Можно прямо? Я не понимаю
Код, про который я писал:
Цитата Сообщение от KOPOJI Посмотреть сообщение
Code
1
2
RewriteCond %{QUERY_STRING} ^url=([A-z]+)$ 
RewriteRule ^page\.php$ /page/%1 [R=301,L]
Ваш код:

Цитата Сообщение от Илья Федин Посмотреть сообщение
Code
1
2
3
4
5
6
7
CharsetSourceEnc UTF-8
CharsetDefault CP866
RewriteEngine on
RewriteCond %{REQUEST_URI} ^\/$
RewriteRule ^.*$ dududududu:p.hihi
RewriteCond %{REQUEST_URI} ^\/dududududu:p\.hihi$
RewriteRule ^.*$ /
Вы видите хотя бы одну одинаковую строчку? У Вас есть проверка QUERY_STRING ? Что Вы тогда не понимаете?

Цитата Сообщение от Evgeniy71rus Посмотреть сообщение
Если убрать (добавить "?")
это уже ошибка логики. "Если GET-параметры подпадают под регулярное выражение (page=...), то перекинуть сюда или сюда". А куда перекинуть? Ну как-то так, образно говоря..
Цитата Сообщение от Evgeniy71rus Посмотреть сообщение
Добавил "&"
насчет этого, я не знаю, почему, но было что-то типа бага (или я неверно понимаю принцип работы) с постоянным редиректом, только добавляли просто переменную:
Code
1
RewriteRule ^page/(.*)/?$ page.php?url=$1&foo [L,QSA]
По поводу того, стоит ли - я считаю, что да Хотя бы для восприятия человеком - когда переиндексирует, будут нормальные ссылки в поиске прописаны.

P.S. и лучше так, имхо
Code
1
RewriteRule ^page/([^/]+)/?$ page.php?url=$1&foo [L,QSA]
0
 Аватар для Илья Федин
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
05.02.2013, 14:38
Цитата Сообщение от KOPOJI Посмотреть сообщение
У Вас есть проверка QUERY_STRING ?
А если нету GET-параметров?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
05.02.2013, 14:39
Илья Федин, если нету гет-параметров, то и под эту RewriteCond не попадет
0
 Аватар для Илья Федин
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
05.02.2013, 14:40
KOPOJI, И что же тогда делать?
0
05.02.2013, 14:43

Не по теме:

:D ..в панике бегать и кричать "А-а-а!!! Пол-лун-дра!!!:scare:"

1
 Аватар для Evgeniy71rus
32 / 32 / 5
Регистрация: 15.11.2010
Сообщений: 167
05.02.2013, 17:56  [ТС]
При таком варианте: (без "?")
PHP
1
RewriteRule ^page\.php$ /page/%1 [R=301,NC,L]
выходит:
http://www.wellsait.ru/page/html?url=html
после добавления "?"
PHP
1
RewriteRule ^page\.php$ /page/%1? [R=301,NC,L]
выходит:
http://www.wellsait.ru/page/html

"&" - предотвращает зацикливание редиректа
вот окончательный код файла .htaccess

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.wellsait.ru$
RewriteRule (.*) http://www.wellsait.ru/$1 [R=301,L]
 
#Редирект
RewriteCond %{QUERY_STRING} ^url=([_a-z]*)$
RewriteRule ^page\.php$ /page/%1? [R=301,NC,L]
RewriteCond %{QUERY_STRING} ^page=([_a-z]*)$
RewriteRule ^katalog\.php$ /katalog/%1? [R=301,NC,L]
 
#ЧПУ
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteBase /
RewriteRule ^page/([^/]+)/?$ page.php?url=$1& [L,QSA]
RewriteRule ^katalog/([^/]+)/?$ katalog.php?page=$1& [L,QSA]
? и & - это что-то вроде хаков

Добавлено через 8 минут
Цитата Сообщение от Илья Федин Посмотреть сообщение
А если нету GET-параметров?
header("Location: index.php")
1
 Аватар для Илья Федин
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
05.02.2013, 18:18
Цитата Сообщение от Evgeniy71rus Посмотреть сообщение
header("Location: index.php")
А если это HTML-файл?
0
 Аватар для Evgeniy71rus
32 / 32 / 5
Регистрация: 15.11.2010
Сообщений: 167
05.02.2013, 18:29  [ТС]
Цитата Сообщение от Илья Федин Посмотреть сообщение
А если это HTML-файл?
А какая разница? У меня PHP во всех работает
0
 Аватар для Илья Федин
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
05.02.2013, 18:31
Evgeniy71rus, Именно! У вас PHP, а у меня HTML!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.02.2013, 18:31
Помогаю со студенческими работами здесь

Настроить ЧПУ 1c bitrix для двух разделов
Добрый день Всем! Подскажите Уважаемые. Как настроить ЧПУ вида: Исходный вид страницы www.ru/products/?filter_SECTION_3=shlyapa на...

Настройка двух провайдеров для двух офисов Mikrotik RB2011UiAS-2HnD-IN
С микротиком особо не дружен, а времени на достаточно глубокое изучение и понимание как подключать 2 провайдера и как вообще настраивать...

Настройка загрузки для двух ХРюш на двух разных жестких на одном компьютере
ЗДравствуте. Суть проблемы: стояла на одном жестком диске операционная система виндоус хп, поставил еще одну на соседний жесткий, теперь не...

Настройка ЧПУ
В общем, господа, помогите настроить ЧПУ. У меня кое-что получилось. Например, заменить ссылки example.com/index.php?page=6 на ...

Настройка ЧПУ
Здравствуйте. Есть сайт на html. Помогите настроить .htaccess для него. Нужно чтобы ссылки по умолчанию имели такой вид без html на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru