HooLIGUN 10 02/20/19 20:48 Подскажите,как сделать, чтобы страница https://сайт.eu/script.php/1/?newsid=2Была доступна по адресу https://сайт.eu/members/1/newsid/2 Реврайты включены, адрес доступен https://сайт.eu/members/1/Предполагаю, нужно что то прописать в файле/applications/members/extensions/furlTemplates.php Поделиться сообщением Ссылка на сообщение
siv1987 2628 02/20/19 21: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. Поделиться сообщением Ссылка на сообщение
HooLIGUN 10 02/21/19 06:30 Правда, я не совсем понимаю как работает это script.php/1/. Возможно этот момент придется пересмотреть и убрать его в параметр запроса query string как newsid.Да, скорее всего корректнее будет такscript.php?members=id&newsid=idК виду так же/members/id/newsid/id Поделиться сообщением Ссылка на сообщение
HooLIGUN 10 02/21/19 08:25 А если скрипт будет написан в среде приложения easypages , то нужно будет прописать в конфиге этого приложения ? Поделиться сообщением Ссылка на сообщение
siv1987 2628 02/21/19 08:48 Да, если скрипт находится в виде модуля одного из приложений, тогда можно воспользоваться системой чпу форума, где шаблоны прописываются в furlTemplates.php Если вне, тогда реврайт в htaccess. RewriteRule ^members/(\d+)/newsid/(\d+) script.php?members=$1&newsid=$2 [L] Поделиться сообщением Ссылка на сообщение
HooLIGUN 10 02/23/19 17: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 Поделиться сообщением Ссылка на сообщение
siv1987 2628 02/23/19 18:54 А почему просто через htaccess не сделать?Чтобы написать шаблон для этого урл, нужно разобрать его на составляющие в виде просто адреса без чпу - app, module и другие, и составлять для него входящие параметры matches. Этот адрес относится к чпу темплейтов pages, там и нужно смотреть подходящие шаблоны. Поделиться сообщением Ссылка на сообщение
HooLIGUN 10 02/23/19 19:12 у меня нжинкс без апачаЛибо я не правильно локацию прописываю, либо оно почему то не работает Поделиться сообщением Ссылка на сообщение
siv1987 2628 02/23/19 23: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 Поделиться сообщением Ссылка на сообщение