HooLIGUN 10 02/20/2019 08:48 PM Подскажите,как сделать, чтобы страница 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
siv1987 2,628 02/20/2019 09:55 PM Если контроллер данного чпу находится вне модулей форума /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
HooLIGUN 10 02/21/2019 06:30 AM Правда, я не совсем понимаю как работает это script.php/1/. Возможно этот момент придется пересмотреть и убрать его в параметр запроса query string как newsid.Да, скорее всего корректнее будет такscript.php?members=id&newsid=idК виду так же/members/id/newsid/id Share this post Link to post
HooLIGUN 10 02/21/2019 08:25 AM А если скрипт будет написан в среде приложения easypages , то нужно будет прописать в конфиге этого приложения ? Share this post Link to post
siv1987 2,628 02/21/2019 08:48 AM Да, если скрипт находится в виде модуля одного из приложений, тогда можно воспользоваться системой чпу форума, где шаблоны прописываются в furlTemplates.php Если вне, тогда реврайт в htaccess. RewriteRule ^members/(\d+)/newsid/(\d+) script.php?members=$1&newsid=$2 [L] Share this post Link to post
HooLIGUN 10 02/23/2019 05:48 PM Не пойму, где именно здесь указывать ссылку на скрпит? '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
siv1987 2,628 02/23/2019 06:54 PM А почему просто через htaccess не сделать?Чтобы написать шаблон для этого урл, нужно разобрать его на составляющие в виде просто адреса без чпу - app, module и другие, и составлять для него входящие параметры matches. Этот адрес относится к чпу темплейтов pages, там и нужно смотреть подходящие шаблоны. Share this post Link to post
HooLIGUN 10 02/23/2019 07:12 PM у меня нжинкс без апачаЛибо я не правильно локацию прописываю, либо оно почему то не работает Share this post Link to post
siv1987 2,628 02/23/2019 11:15 PM Я так понимаю /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 Share this post Link to post