ЧПУ в IPB (добавление .html к топикам)

(Ответов: 2, Просмотров: 3480)
  1. Любитель птИЦ Аватар для Hallboy222
    • Регистрация: 12.04.2011
    • Сообщений: 227
    • Репутация: 47
    • Webmoney BL: ?
    Собственно как в ipb (3.1.4) можно к топикам добавить .html?
    В настоящее время ссылки на топики имеют вид:
    /forum/topic/3-title/

    Хотелось бы сделать:
    /forum/topic/3-title.html
    Не думай о миллионе долларов, воспринимай его как неизбежность.
    • 0
  2. Любитель птИЦ Аватар для Hallboy222
    • Регистрация: 12.04.2011
    • Сообщений: 227
    • Репутация: 47
    • Webmoney BL: ?
    Проблему решил. Основная проблема была в том, что ipb использовался в связке с dle и находился в папке forum (site.ru/forum/).
    Для добавления .html к топикам потребовалось:
    В файл .htaccess (что в корне сайта, а не в папке с форумом) добавить:
    Код:
    RewriteRule ^/forum/$ /forum/index.php? [L]
    Это требуется для открытия форума по ссылке site.ru/forum/ без index.php
    Далее в настройках форума (админцентр) Настройки и инструменты > Системные настройки > Система > Поисковая оптимизация (SEO)
    Выставить такие настройки:
    Тип URL - Путь
    Использовать .htaccess mod_rewrite? - Да
    Тип обработки неверных URL? - Не обрабатывать
    Теперь в файл .htaccess (что в папке с форумом) дописать:
    Код:
    <IfModule mod_rewrite.c>
     RewriteEngine On
     RewriteBase /forum/
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule . /forum/index.php [L]
    </IfModule>
    Обязательно так, а не как написано в админцентре к пункту Использовать .htaccess mod_rewrite?:
    Код:
    <IfModule mod_rewrite.c>
     Options -MultiViews
     RewriteEngine On
     RewriteBase /forum/
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule . /forum/index.php [L]
     </IfModule>
    Если будет строчка Options -MultiViews то только 500 ошибку увидите и ничего прочего, а если оставить строчку RewriteEngine On, то будет 404 ошибка.

    И самое важное: в файле /forum/admin/applications/forums/extensions/furlTemplates.php заменяем:
    Код:
    	'showtopic'     => array( 'app'		      => 'forums',
    							  'allowRedirect' => 1,
    							  'out'           => array( '#showtopic=(.+?)(&|$)#i', 'topic/$1-#{__title__}/$2' ),
    							  'in'            => array( 'regex'   => '#^/topic/(\d+?)-#i',
    												        'matches' => array( array( 'showtopic', '$1' ) ) ) ),
    на
    Код:
    	'showtopic'     => array( 'app'		      => 'forums',
    							  'allowRedirect' => 1,
    							  'out'           => array( '#showtopic=(.+?)(&|$)#i', 'topic/$1-#{__title__}.html$2' ),
    							  'in'            => array( 'regex'   => '#/topic/(\d+?)-#i',
    												        'matches' => array( array( 'showtopic', '$1' ) ) ) ),
    Не думай о миллионе долларов, воспринимай его как неизбежность.
    • 1

    Спасибо сказали:

    OKyJIucT(14.06.2012),
  3. Студент Аватар для CaHbKa
    • Регистрация: 05.09.2009
    • Сообщений: 40
    • Репутация: 6
    • Webmoney BL: ?
    Решил не создавать новую тему, а задать вопрос тут, так как делал все по этой инструкции.

    Сначала все стало идеально, чпу работало. Я решил обновить весь кеш, чтобы убедиться в работе ещё раз. И после этого URL стали такого типа /forum/topic/4/ вместо /forum/topic/4-title.html

    Переустанавливал по инструкции, ставил стандартную версию, но от этого ничего не поменялось.

    Подскажите в чем может быть проблема?

    IPB 3.0.5

    ---------- Сообщение добавлено 21:22 ---------- Предыдущее 20:56 ----------

    UPD! Начал копать дальше и зашел в файл cache/furlCache.php

    и обнаружил там такую беду:

    PHP код:
      'showtopic' => 
      array (
        
    'app' => 'forums',
        
    'allowRedirect' => 1,
        
    'out' => 
        array (
          
    => '#showtopic=(.+?)(&|$)#i',
          
    => 'topic/$1/$2',
        ),
        
    'in' => 
        array (
          
    'regex' => '#/topic/(\\d+)/#i',
          
    'matches' => 
          array (
            
    => 
            array (
              
    => 'showtopic',
              
    => '$1',
            ),
          ),
        ),
      ), 
    в 8-й строке можно заметить такой код:

    PHP код:
     1 => 'topic/$1/$2'
    Хотя по идеи он должен быть таким:

    PHP код:
    => 'topic/$1-#{__title__}.html$2'
    Не понятно что его убирает.

    Пробовал прописать его в ручную, но после этого ни одна ссылка на форуме не работает.
    • 0

Похожие темы

Темы Раздел Ответов Последний пост
Добавление в группу (Фейсбук)
Социальные сети 1 20.10.2012 19:31
Добавление Статей В Блог
Копирайтинг, переводы, постинг 5 28.06.2011 14:57
Сео-услуги: Добавление комментариев в блоги, Регистрация в каталогах ссылок, Добавление в социальные закладки и Прогон по статистическим сайтам
Реклама партнерских программ 6 16.02.2011 14:41
Добавление друзей на форуме
Обсуждение форума и ваши предложения 3 15.09.2010 22:39
HTML верстка сайтов. HTML/CSS верстка.
Реклама партнерских программ 2 26.07.2010 14:12

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры