Свой ЧПУ (furl) - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1

Свой ЧПУ (furl)

#1 Пользователь не на сайте   HooLIGUN ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 171
  • Регистрация: 04-Декабрь 11
  • Репутация: 7
  • IPB version:3.4.x
 

Отправлено 20 Февраль 2019 - 22:48

Подскажите,как сделать, чтобы страница
https://сайт.eu/script.php/1/?newsid=2

Была доступна по адресу
https://сайт.eu/members/1/newsid/2


Реврайты включены, адрес доступен https://сайт.eu/members/1/
Предполагаю, нужно что то прописать в файле
/applications/members/extensions/furlTemplates.php
0

#2 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 446
  • Регистрация: 20-Март 09
  • Репутация: 2 546
  • IPB version:3.1.x
 

Отправлено 20 Февраль 2019 - 23:55

Если контроллер данного чпу находится вне модулей форума /admin/applications/%app%/modules_public/, то скорее всего придется писать кастомный реврайт в htaccess

Добавить после RewriteEngine On (или RewriteBase если он следует после RewriteEngine)
RewriteRule ^members/(\d+)/newsid/(\d+) script.php/$1/?newsid=$2 [L]

Правда, я не совсем понимаю как работает это script.php/1/. Возможно этот момент придется пересмотреть и убрать его в параметр запроса query string как newsid.
0

#3 Пользователь не на сайте   HooLIGUN ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 171
  • Регистрация: 04-Декабрь 11
  • Репутация: 7
  • IPB version:3.4.x
 

Отправлено 21 Февраль 2019 - 08:30

Просмотреть сообщениеsiv1987 20 Февраль 2019 - 23:55 сказал(а):

Правда, я не совсем понимаю как работает это script.php/1/. Возможно этот момент придется пересмотреть и убрать его в параметр запроса query string как newsid.

Да, скорее всего корректнее будет так
script.php?members=id&newsid=id
К виду так же
/members/id/newsid/id
0

#4 Пользователь не на сайте   HooLIGUN ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 171
  • Регистрация: 04-Декабрь 11
  • Репутация: 7
  • IPB version:3.4.x
 

Отправлено 21 Февраль 2019 - 10:25

А если скрипт будет написан в среде приложения easypages , то нужно будет прописать в конфиге этого приложения ?
0

#5 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 446
  • Регистрация: 20-Март 09
  • Репутация: 2 546
  • IPB version:3.1.x
 

Отправлено 21 Февраль 2019 - 10:48

Да, если скрипт находится в виде модуля одного из приложений, тогда можно воспользоваться системой чпу форума, где шаблоны прописываются в furlTemplates.php Если вне, тогда реврайт в htaccess.

RewriteRule ^members/(\d+)/newsid/(\d+) script.php?members=$1&newsid=$2 [L]

0

#6 Пользователь не на сайте   HooLIGUN ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 171
  • Регистрация: 04-Декабрь 11
  • Репутация: 7
  • IPB version:3.4.x
 

Отправлено 23 Февраль 2019 - 19:48

Не пойму, где именно здесь указывать ссылку на скрпит?
	'showuser'	=> array( 'app'		      => 'members',
						  'allowRedirect' => 1,
						  'out'           => array( '#showuser=(.+?)((?:&|&)f=(.+?))?(&|$)#i', 'user/$1-#{__title__}/$2$4' ),
						  'in'            => array( 'regex'   => "#^/user/(\d+?)-#i",
												    'matches' => array( array( 'showuser', '$1' ) ) ) ),

Ссылка на скрипт //сайт.eu/pages/gamestats?member=id&newsid=id
0

#7 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 446
  • Регистрация: 20-Март 09
  • Репутация: 2 546
  • IPB version:3.1.x
 

Отправлено 23 Февраль 2019 - 20:54

А почему просто через htaccess не сделать?
Чтобы написать шаблон для этого урл, нужно разобрать его на составляющие в виде просто адреса без чпу - app, module и другие, и составлять для него входящие параметры matches. Этот адрес относится к чпу темплейтов pages, там и нужно смотреть подходящие шаблоны.
0

#8 Пользователь не на сайте   HooLIGUN ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 171
  • Регистрация: 04-Декабрь 11
  • Репутация: 7
  • IPB version:3.4.x
 

Отправлено 23 Февраль 2019 - 21:12

у меня нжинкс без апача
Либо я не правильно локацию прописываю, либо оно почему то не работает
0

#9 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 446
  • Регистрация: 20-Март 09
  • Репутация: 2 546
  • IPB version:3.1.x
 

Отправлено 24 Февраль 2019 - 01:15

Я так понимаю /pages/ это урл приложения easypages. Вы хотите преобразовать чпу адрес этого приложения в другой адрес, соответствующий приложению members.

Попробуйте в /admin/applications/members/extensions/furlTemplates.php
После
$_SEOTEMPLATES = array(

Добавить
	'members_newsid'	=> array(
		'app'			=> 'easypages',
		'allowRedirect'	=> 0,
		'out'			=> array( '#app=easypages(?:&|&)page=gamestats(?:&|&)member=(\d+)(?:&|&)newsid=(\d+)#i', 'members/$1/newsid/$2' ),
		'in'			=> array(
			'regex'		=> "#^/members/(\d+)/newsid/(\d+)#i",
			'matches'	=> array(
				array( 'app', 'easypages' ),
				array( 'page', 'gamestats' ),
				array( 'member', '$1' ),
				array( 'newsid', '$2' )
				),
			),
		),


По хорошему, конечно, его надо было добавить в furlTemplates приложения easypages. Но в members есть шаблон members_list который ему соответствует, чтобы исключить его перехвата добавим его в furlTemplates members первый в списке.
1

#10 Пользователь не на сайте   HooLIGUN ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 171
  • Регистрация: 04-Декабрь 11
  • Репутация: 7
  • IPB version:3.4.x
 

Отправлено 26 Февраль 2019 - 00:07

Спасибо, получилось
0

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2019 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна