bitrix чпу

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем Sysfaray, 7 сен 2011.

  1. Sysfaray

    Sysfaray Постоялец

    Регистр.:
    7 окт 2007
    Сообщения:
    148
    Симпатии:
    70
    site.ru/katalogi
    site.ru/katalogi/
    _www.site.ru/katalogi
    _www.site.ru/katalogi/
    Чтоб вели на одну и туже страницу (_www.site.ru/katalogi/).
     
  2. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    Код:
    RewriteEngine on
    RewriteRule ^/?katalogi$ /katalogi/ [R=301,L]
    
    Какой вопрос - такой ответ.
     
  3. Sysfaray

    Sysfaray Постоялец

    Регистр.:
    7 окт 2007
    Сообщения:
    148
    Симпатии:
    70
    а если таких страниц массив.
    Переношу сайт на битрикс, хотелось бы оставить переходы по старым страницам.
    "Какой вопрос - такой ответ."
    в чём моя ошибка , вызывающая такой сарказм.
    .htaccess
    PHP:
    <IfModule mod_rewrite.c
      
    Options +FollowSymLinks 
      RewriteEngine On 
      
    # редирект host.ru -> www.host.ru 
      
    RewriteCond %{HTTP_HOST} !^www\..+$ [NC
      
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 
      # редирект /news/123 -> /news/123/ 
      
    RewriteCond %{REQUEST_URI} ^(.*/[^/\.]+)$ 
      
    RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L] 
      # подключение ЧПУ битрикса 
      
    RewriteCond %{REQUEST_FILENAME} !-
      RewriteCond 
    %{REQUEST_FILENAME} !-
      RewriteCond 
    %{REQUEST_FILENAME} !-
      RewriteCond 
    %{REQUEST_FILENAME} !/bitrix/urlrewrite.php
      
    RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L
    </
    IfModule
    urlrewrite.php
    PHP:
    <?
    $arUrlRewrite = array(
        array(
            
    "CONDITION"    =>    "#^/catalog/([a-zA-Z0-9_]+)(/*)(.*)?#",
            
    "RULE"    =>    "SECTION_CODE=$1",
            
    "ID"    =>    "",
            
    "PATH"    =>    "/catalog/list.php",
        ),
        array(
            
    "CONDITION"    =>    "#^/types_of_printing/([\\w\\d_]+)(/)?#",
            
    "RULE"    =>    "code=$1",
            
    "ID"    =>    "",
            
    "PATH"    =>    "/types_of_printing/detail.php",
        ),
        array(
            
    "CONDITION"    =>    "#^/(.*)/(.*)?#",
            
    "RULE"    =>    "ELEMENT_CODE=$1",
            
    "ID"    =>    "",
            
    "PATH"    =>    "/catalog/detail.php",
        ),
        array(
            
    "CONDITION"    =>    "#^/products/([\\w\\d]+)(/)?#",
            
    "RULE"    =>    "code=$1",
            
    "ID"    =>    "",
            
    "PATH"    =>    "/products/detail.php",
        ),
        array(
            
    "CONDITION"    =>    "#^/e-store/books/reviews/#",
            
    "RULE"    =>    "",
            
    "ID"    =>    "bitrix:news",
            
    "PATH"    =>    "/e-store/books/reviews/index.php",
        ),
        array(
            
    "CONDITION"    =>    "#^/communication/forum/#",
            
    "RULE"    =>    "",
            
    "ID"    =>    "bitrix:forum",
            
    "PATH"    =>    "/communication/forum/index.php",
        ),
        array(
            
    "CONDITION"    =>    "#^/e-store/xml_catalog/#",
            
    "RULE"    =>    "",
            
    "ID"    =>    "bitrix:catalog",
            
    "PATH"    =>    "/e-store/xml_catalog/index.php",
        ),
        array(
            
    "CONDITION"    =>    "#^/communication/blog/#",
            
    "RULE"    =>    "",
            
    "ID"    =>    "bitrix:blog",
            
    "PATH"    =>    "/communication/blog/index.php",
        ),
        array(
            
    "CONDITION"    =>    "#^/service/(.*)/(.*)?#",
            
    "RULE"    =>    "ELEMENT_CODE=$1",
            
    "ID"    =>    "",
            
    "PATH"    =>    "/service/detail.php",
        ),
        array(
            
    "CONDITION"    =>    "#^/content/articles/#",
            
    "RULE"    =>    "",
            
    "ID"    =>    "bitrix:news",
            
    "PATH"    =>    "/content/articles/index.php",
        ),
        array(
            
    "CONDITION"    =>    "#^/content/gallery/#",
            
    "RULE"    =>    "",
            
    "ID"    =>    "bitrix:photogallery_user",
            
    "PATH"    =>    "/content/gallery/index.php",
        ),
        array(
            
    "CONDITION"    =>    "#^/personal/lists/#",
            
    "RULE"    =>    "",
            
    "ID"    =>    "bitrix:lists",
            
    "PATH"    =>    "/personal/lists/index.php",
        ),
        array(
            
    "CONDITION"    =>    "#^/e-store/books/#",
            
    "RULE"    =>    "",
            
    "ID"    =>    "bitrix:catalog",
            
    "PATH"    =>    "/e-store/books/index.php",
        ),
        array(
            
    "CONDITION"    =>    "#^/content/photo/#",
            
    "RULE"    =>    "",
            
    "ID"    =>    "bitrix:photogallery",
            
    "PATH"    =>    "/content/photo/index.php",
        ),
        array(
            
    "CONDITION"    =>    "#^/content/news/#",
            
    "RULE"    =>    "",
            
    "ID"    =>    "bitrix:news",
            
    "PATH"    =>    "/content/news/index.php",
        ),
        array(
            
    "CONDITION"    =>    "#^/club/gallery/#",
            
    "RULE"    =>    "",
            
    "ID"    =>    "bitrix:photogallery_user",
            
    "PATH"    =>    "/club/gallery/index.php",
        ),
        array(
            
    "CONDITION"    =>    "#^/content/faq/#",
            
    "RULE"    =>    "",
            
    "ID"    =>    "bitrix:support.faq",
            
    "PATH"    =>    "/content/faq/index.php",
        ),
        array(
            
    "CONDITION"    =>    "#^/club/forum/#",
            
    "RULE"    =>    "",
            
    "ID"    =>    "bitrix:forum",
            
    "PATH"    =>    "/club/forum/index.php",
        ),
        array(
            
    "CONDITION"    =>    "#^/services/#",
            
    "RULE"    =>    "",
            
    "ID"    =>    "bitrix:news",
            
    "PATH"    =>    "/services/index.php",
        ),
        array(
            
    "CONDITION"    =>    "#^/sef_test/#",
            
    "RULE"    =>    "",
            
    "ID"    =>    "",
            
    "PATH"    =>    "/index.php",
        ),
        array(
            
    "CONDITION"    =>    "#^/club/#",
            
    "RULE"    =>    "",
            
    "ID"    =>    "bitrix:socialnetwork",
            
    "PATH"    =>    "/club/index.php",
        ),
        array(
            
    "CONDITION"    =>    "#^/news/#",
            
    "RULE"    =>    "",
            
    "ID"    =>    "bitrix:news",
            
    "PATH"    =>    "/news/index.php",
        ),
    );
    ?>
    Всё работает , кроме адреса вида "_site.ru/katalogi" данный адрес вызывает ошибку 404.
    + всплывает indexp.php чего бы не хотелось.
     
  4. jami

    jami Постоялец

    Регистр.:
    10 авг 2011
    Сообщения:
    114
    Симпатии:
    39
    Еще бы он не выдавал, в urlrewrite нет никаких katalogi.
    Битриксом не пользуюсь, но в соответствии с условием, нужно добавить приблизительно такое правило:
    PHP:
        (
            
    "CONDITION"    =>    "#^/katalogi/?#",
            
    "RULE"    =>    "",
            
    "ID"    =>    "",
            
    "PATH"    =>    "/catalog/list.php (здесь адрес стр списков каталогов, куда нужно перейти с /katalogi)",
        ), 
    Хотя лучше добавить правило в htacess
    HTML:
    
    RewriteEngine on
    RewriteRule ^/katalogi/?$ /catalog/list.php [R=301,L]
    
     
  5. Sysfaray

    Sysfaray Постоялец

    Регистр.:
    7 окт 2007
    Сообщения:
    148
    Симпатии:
    70
    это тип ссылки , с www и без www , а также с / и без /

    там может быть любой каталог не только /katalogi/
     
  6. ttx

    ttx

    Регистр.:
    15 мар 2007
    Сообщения:
    187
    Симпатии:
    36
    Чтобы вели на одну страницу ссылки "с /" и "без /" надо в настройках ЧПУ компонента, который их выводит, попробовать указать просто SECTION_CODE без /. Но, вобще-то, специально сделано в системе, чтобы не было ссылок на папки без / в конце.

    Знак / в конце говорит ЧПУ, что это эмулируется папка, а без / - файл.
     
  7. stylevrn

    stylevrn Создатель

    Регистр.:
    8 янв 2013
    Сообщения:
    15
    Симпатии:
    1
    Ребят, помогите пожалуйста. Переношу новости, не могу настроить чпу отображения новостей. Показывает код 404
    Необходим вывод новостей типа " #SITE_DIR#/news/#SECTION_CODE#/#ELEMENT_CODE#.php "
    Создал страницу " #SITE_DIR#/news/newsdetail.php "
    Добавил в нее компонент " bitrix:news.detail " и настроил ID новости " ={$_REQUEST["ELEMENT_ID"]} "
    В правилах обработки адресов указал
    Условие " #^/news/([a-zA-Z0-9]+$)/([a-zA-Z0-9]+$)/# "
    Компонент " bitrix:news.detail "
    Файл " /news/newsdetail.php "
    Правило " ELEMENT_CODE=$2 "

    При переходе по ссылке "новость детально" открывается 404.

    Подскажите, пожалуйста, на каком этапе совершил ошибку. Спасибо.
     
  8. stylevrn

    stylevrn Создатель

    Регистр.:
    8 янв 2013
    Сообщения:
    15
    Симпатии:
    1
    Подправил

    Условие » #^/news/([a-zA-Z0-9]+$)/([a-zA-Z0-9]+$)\.php# »
    ID новости » ={$_REQUEST["ELEMENT_CODE"]} »

    не помогает