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

Свой ЧПУ (furl)

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

Подскажите,как сделать, чтобы страница

https://сайт.eu/script.php/1/?newsid=2

Была доступна по адресу

https://сайт.eu/members/1/newsid/2

 

Реврайты включены, адрес доступен https://сайт.eu/members/1/

Предполагаю, нужно что то прописать в файле

/applications/members/extensions/furlTemplates.php

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


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

Если контроллер данного чпу находится вне модулей форума /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.

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


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

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

Да, скорее всего корректнее будет так

script.php?members=id&newsid=id

К виду так же

/members/id/newsid/id

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


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

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

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


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

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

 

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

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


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

Не пойму, где именно здесь указывать ссылку на скрпит?

	'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

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


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

А почему просто через htaccess не сделать?

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

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


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

у меня нжинкс без апача

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

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


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

Я так понимаю /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 первый в списке.

  • Upvote 1

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


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

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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