Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Настройка ЧПУ, правило обработки адресов

00 голосов
9
Cоздаю правило обработки адресов для настройки ЧПУ.
Сейчас адрес имеет вид:
Код
/gospel/pericope/?ELEMENT_ID=545&SECTION_ID=208

Нужно, чтобы эта страница откликалась на адрес:
Код
/gospel/pericope/545/208/

Правильно ли будет добавить в настройки обработки адресов такое правило:
Код
Условие: #^/gospel/pericope/([0-9]+)/([0-9]+)/#
Компонент: ничего не писать
Файл: /gospel/pericope/index.php?ELEMENT_ID=S1&SECTION_ID=S2
Правило: ничего не писать


Подскажите, что не так записано в поле Условие или Файл
спросил 23 Май, 13 от Mikstik (220 баллов)

9 Ответы

00 голосов
Евгений Жуков, спасибо, всё сработало.
ответил 23 Май, 13 от Mikstik (220 баллов)
00 голосов
Цитата
Алексей Комаров пишет:
Условие: #^/gospel/pericope/([0-9]+)/([0-9]+)/#
Компонент: ничего не писать
Файл: /gospel/pericope/index.php?ELEMENT_ID=S1&SECTION_ID=S2
Правило: ничего не писать

Вот так:
Код
Файл: /gospel/pericope/index.php 
Правило: ELEMENT_ID=$1&SECTION_ID=$2
ответил 23 Май, 13 от Pomnep (13,960 баллов)
00 голосов
Правильно ли я понимаю, что в процессе работы с Битрикс, иногда, генерируются разные дополнительные параметры, которые передаются в строке браузера для разных компонент, например, авторизации. В представленном выше правиле вырезаются только переменные ELEMENT_ID и SECTION_ID. А, остальные потеряются для дальнейшей обработки, когда сработает правило? Может быть будет лучше как-то усложнить Условие и Правило, чтобы остальные параметры тоже вырезались и передавались дальше?
Я имею ввиду, что если после /gospel/pericope/545/208/ будет какой-то хвост переменных /gospel/pericope/545/208/?abcd, то как лучше этот хвост выделить и пристыковать к /gospel/pericope/index.php?ELEMENT_ID=S1&SECTION_ID=S2, чтобы было /gospel/pericope/index.php?ELEMENT_ID=S1&SECTION_ID=S2&abcd ?
Подскажите, пожалуйста.
ответил 13 Авг, 13 от Mikstik (220 баллов)
00 голосов
Цитата
Алексей Комаров пишет:
какой-то хвост переменных /gospel/pericope/545/208/?abcd

Задайте для хвоста регулярное выражение: Обработка адресов. Последний пример - как раз описанная Вами ситуация.
ответил 13 Ноя, 13 от Pomnep (13,960 баллов)
00 голосов
Спасибо, пример посмотрел.
По-моему там в примере обрезались знаки доллара и цифры после них, как и в сообщениях этого форума обрезаются (вместо доллара пишу S), поэтому там для меня не очень понятно, какие цифры ставить, когда скобки вложены друг в друга.
Понял, что нужно сделать вот такое правило.
Код
Условие: #^/gospel/pericope/([0-9]+)/([0-9]+)/(\\?(.*))?# 
Компонент: ничего не писать 
Файл: /gospel/pericope/index.php
Правило: ELEMENT_ID=S1&SECTION_ID=S2&S3

S3 - это то, что сгруппировано (.*), т.е. хвост abcd, так нужно выделить?
ответил 21 Фев, 14 от Mikstik (220 баллов)
00 голосов
А обратную задачу как решить, подскажете?

/index.php?option=com_virtuemart&page=shop.browse&category_id=350& и далее разные параметры...
(обращения роботов по адресам от старой версии сайта )

редирект на /old/350/index.php

Условие: #^/index.php?option=com_virtuemart&page=shop.browse&category_id=([0-9]+)#
Компонент:
Файл: /old/
Правило: $1/index.php

не работает :(
ответил 12 Июнь, 14 от SiReNa (100 баллов)
00 голосов
Цитата
Андрей Жикин пишет:
А обратную задачу как решить, подскажете?

Через mod_rewrite такое надо делать. Заодно нужный статус отправите роботам.
Цитата
Андрей Жикин пишет:
Правило: $1/index.php

А такое в принципе не должно работать.
ответил 11 Окт, 14 от Pomnep (13,960 баллов)
00 голосов
Что-то не нравятся мне вложенные скобки и двойной слеш в примере, пожалуй, переделаю по-другому
Условие: #^/gospel/pericope/([0-9]+)/([0-9]+)/(\\?(.*))?#

Так, наверное, лучше будет:
#^/gospel/pericope/([0-9]+)/([0-9]+)/\?(.*)?#
ответил 11 Фев, 15 от Mikstik (220 баллов)
00 голосов
Алексей, для такого правила вам не нужно ничего добавлять, все параметры и так придут.
Т.е.: #^/gospel/pericope/([0-9]+)/([0-9]+)/#
вполне достаточно

А вот если у вас ссылка такого шаблона /gospel/pericope/([0-9]+)/([0-9]+).php

тогда вот такое правило должно быть:
#^/gospel/pericope/([0-9]+)/([0-9]+)\.php.*#

Или я не совсем понял вашу проблему?
ответил 23 Май, 15 от Delp (7,220 баллов)
Доброго времени суток!
Существует на сайте ссылка с орфографической ошибкой "buisness". Как мне эту ссылку поменять на "business".
Подскажите, пожалуйста.

Похожие вопросы

0 голосов
6 ответов
спросил 19 Окт, 13 от Graviti (120 баллов)
0 голосов
5 ответов
спросил 13 Ноя, 13 от Runnar (1,000 баллов)
0 голосов
1 ответ
спросил 03 Июль, 14 от Werner (160 баллов)
0 голосов
4 ответов
спросил 19 Окт, 13 от Cload (120 баллов)
0 голосов
6 ответов
спросил 06 Авг, 13 от Igeo (140 баллов)