Перейти к содержимому
Русский язык для Invision Community 5

Как изменить адреса типа папка на тип файл?

Как изменить адреса типа папка на тип файл?

То есть, чтобы было не сайт.ру/файлы, а сайт.ру/файлы.хтмл

Рекомендованные сообщения

Чем генерируется страница?

  • Автор

Чем генерируется страница?

 

я так понимаю, что это встроенное IPB

 

ЗЫ: желательно чтобы работали оба варианта!

Изменено пользователем muslimgauze

В каждом приложении для IPB есть папка extensions. В ней файл furlTemplates.php. В нем прописаны все ЧПУ с помощью регулярных выражений.

 

На примере форума - /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' ) ) ) ),

Создает пути вида:

/topic/123456-чпу-текст/

 

Сделаем так:

	'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' ) ) ) ),

Создает пути вида:

/topic/123456-чпу-текст.html

 

При этом старые ссылки тоже будут работать, в зависимости от SEO настроек, с редиректами на новые, или без таковых.

 

 

Или, например, список пользователей - /admin/applications/members/extensions/furlTemplates.php:

 

Главная страница:

	'members_list'  => array( 
					'app'			=> 'members',
					'allowRedirect' => 0,
					'out'			=> array( '#app=members((&|&)module=list)?#i', 'members/' ),
					'in'			=> array( 
												'regex'		=> "#/members(/|$|\?)#i",
												'matches'	=> array( array( 'app', 'members' ),
																	  array( 'module', 'list' )  )
											) 
								),

Делает путь вида:

/members/

 

Первращаем его в страницу:

	'members_list'  => array( 
					'app'			=> 'members',
					'allowRedirect' => 0,
					'out'			=> array( '#app=members((&|&)module=list)?#i', 'members.html' ),
					'in'			=> array( 
												'regex'		=> "#/members\.html(/|$|\?)#i",
												'matches'	=> array( array( 'app', 'members' ),
																	  array( 'module', 'list' )  )
											) 
								),

 

Список пользователей будет на странице:

/members.html

 

Далее читайте доку по регуляркам, экспериментируйте. Разобраться и самостоятельно написать свои ЧПУ не проблема. Так же не столь сложно составить regex выражения таким образом, чтобы материалы были доступны и по старым адресам. Сделать все это лучше самостоятельно, это одна из тех вещей, которые лучше понять, нежели скопипастить откуда-то готовое, а потом хвататься за голову, когда все страницы вылетят из поисковиков.

  • Автор

Далее читайте доку по регуляркам, экспериментируйте. Разобраться и самостоятельно написать свои ЧПУ не проблема. Так же не столь сложно составить regex выражения таким образом, чтобы материалы были доступны и по старым адресам. Сделать все это лучше самостоятельно, это одна из тех вещей, которые лучше понять, нежели скопипастить откуда-то готовое, а потом хвататься за голову, когда все страницы вылетят из поисковиков.

 

спасибо за развернутый и полезный ответ!

  • 1 месяц спустя...

А как на 3.2.3 сделать транслитерацию url?

А как на 3.2.3 сделать транслитерацию url?

У вас даже ЧПУ не включен. Вы лучше разберитесь почему куки не ставятся, от чего сессии не убираются из ссылках.

 

./initdata.php

 

/**

* Making FURL Transliteration for russian forums

* @since 3.0.0.ru

*/

define( 'IPB_USE_SEO_TRANSLIT', TRUE );

 

TRUE включает, FALSE выключает.

После изменения возможно потребуется сбросить кэш чпу в админке, Управление кешем -> Перестроить FURL кеш

У вас даже ЧПУ не включен. Вы лучше разберитесь почему куки не ставятся, от чего сессии не убираются из ссылках.

 

./initdata.php

 

/**

* Making FURL Transliteration for russian forums

* @since 3.0.0.ru

*/

define( 'IPB_USE_SEO_TRANSLIT', TRUE );

 

TRUE включает, FALSE выключает.

После изменения возможно потребуется сбросить кэш чпу в админке, Управление кешем -> Перестроить FURL кеш

Нет, в initdata.php таких строк нет :(

С куками все, надеюсь, просто, нужно хост для них прописать, я как раз воюю с настройками, потому до них пока руки не дошли..

Пропишите. Точно не знаю, но кажется эта настройка была только в русской локализации ибр-а.

Пропишите. Точно не знаю, но кажется эта настройка была только в русской локализации ибр-а.

Так оно и есть.

Прописал, перестроил кеши ЧПУ, но не сработало :(

 

ps сорри за оффтоп, я вчера сделал заявку на платную доработку у вас на этом сайте - результат рассмотрения как узнать, принимая во внимание не рабочий email на который зарегистрирован здесь мой аккаунт?

Прописал, перестроил кеши ЧПУ, но не сработало

А чпу включили?

 

ps сорри за оффтоп, я вчера сделал заявку на платную доработку у вас на этом сайте

http://ipbskins.ru/forum/topic9788.html

Прописал, перестроил кеши ЧПУ, но не сработало :(

В английской версии и не сработает.

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.