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

ЧПУ и ModRewrite

00 голосов
6
Здравствуйте!
Начинаю сайт потихоньку переводить на ЧПУ.
На первой же директиве столкнулся с проблемой:
хотел сделать, чтобы trudu.net/bill/job.php срабатывал и по адресу trudu.net/bill/job/

прописал в htaccess директиву RewriteRule ^/bill/([A-z0-9]+)/?$ /bill/$1/
Но эффекта ноль (((

Пожалуйста, помогите разобраться

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
RewriteRule ^/bill/([A-z0-9]+)/?$ /bill/$1/
</IfModule>
спросил 23 Окт, 13 от loxu (140 баллов)

6 Ответы

00 голосов
Цитата
Глеб Боровиков пишет:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
RewriteRule ^/bill/([A-z0-9]+)/?$ /bill/$1/



RewriteRule срабатывает только 1 раз. Для 2-го нужно писать снова RewriteCond

Что-то типа
Код
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-l
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
  RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]

  RewriteCond %{REQUEST_FILENAME} /bitrix/urlrewrite.php$
  RewriteRule ^/bill/([A-z0-9]+)/?$ /bill/$1/


Описал только принцип
ответил 18 Ноя, 13 от spamer (500 баллов)
00 голосов
написал... не помогло
ответил 27 Фев, 14 от loxu (140 баллов)
00 голосов
сейчас выглядит следующим образом :
Код
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-l
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
  RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
  RewriteCond %{REQUEST_FILENAME} /bitrix/urlrewrite.php$ 
  RewriteRule ^/bill/([A-z0-9]+)\.php$ /bill/$1/
</IfModule>
ответил 18 Июнь, 14 от loxu (140 баллов)
00 голосов
хеееелп )))
ответил 17 Окт, 14 от loxu (140 баллов)
00 голосов
И не поможет.
Почитайте про директиву RewriteRule. В частности про флаг [L]. Он означает
Цитата
Остановить процесс преобразования на этом месте и не применять больше никаких правил преобразований.


Мне кажется, что для решения Вашей задачи вполне подойдет стандартный механизм Битрикса "Обработка адресов". По настройке ЧПУ точно есть статья на демосайте. Там даже разбирался пример, похожий на Ваш.
ответил 18 Фев, 15 от Brat (180 баллов)
00 голосов
спасибо. разобрался
теперь написал обработчик для вывода новостей.. и опять засада
http://trudu.net/bill/detail.php?ID=31240 - исходная ссылка превращается в
http://trudu.net/bill/detail31240/ - но на этой странице теперь потерялось меню...(((
ответил 29 Май, 15 от loxu (140 баллов)

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

0 голосов
2 ответов
спросил 18 Апр, 14 от kakashka1 (340 баллов)
0 голосов
0 ответов
спросил 08 Янв, 14 от XpoHo3aBp (860 баллов)
0 голосов
5 ответов
спросил 02 Дек, 13 от eff (160 баллов)
0 голосов
5 ответов
спросил 23 Ноя, 13 от PAV (100 баллов)
0 голосов
4 ответов
спросил 19 Окт, 13 от Cload (120 баллов)