Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
muslimgauze

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

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

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

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

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение
02/24/12 10:40 (изменено)

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

 

я так понимаю, что это встроенное 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 выражения таким образом, чтобы материалы были доступны и по старым адресам. Сделать все это лучше самостоятельно, это одна из тех вещей, которые лучше понять, нежели скопипастить откуда-то готовое, а потом хвататься за голову, когда все страницы вылетят из поисковиков.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

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

 

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

Поделиться сообщением


Ссылка на сообщение

А как на 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

Поделиться сообщением


Ссылка на сообщение

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

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

Поделиться сообщением


Ссылка на сообщение

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

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...