Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
HooLIGUN

Свой ЧПУ (furl)

Recommended Posts

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

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

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

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

 

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

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

/applications/members/extensions/furlTemplates.php

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

script.php?members=id&newsid=id

К виду так же

/members/id/newsid/id

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

	'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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Я так понимаю /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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...