Страницы вида: сайт/index.php/страница код 200OK
        Настроены ЧПУ и корректно работают, НО:
Страницы вида: сайт/index.php/страница отдают всегда код 200 ОК (даже если такой страницы нет).
Помимо этого, всегда отображается главная страница, даже если страница существует, например есть страница сайт/оплата со своим контентом, по адресу сайт/index.php/оплата откроется главная и отдаст код 200 ОК.
В чем может быть проблема, и как ее решить?
MODX Revo 2.5.7 php7.1
    
    
                                                                                
            Страницы вида: сайт/index.php/страница отдают всегда код 200 ОК (даже если такой страницы нет).
Помимо этого, всегда отображается главная страница, даже если страница существует, например есть страница сайт/оплата со своим контентом, по адресу сайт/index.php/оплата откроется главная и отдаст код 200 ОК.
В чем может быть проблема, и как ее решить?
MODX Revo 2.5.7 php7.1
Комментарии: 6
                Есть такая проблема, можно решить через небольшой плагин, или через .htaccess
                    <?php
switch ($modx->event->name) {
    case 'OnHandleRequest':
        if (strpos($_SERVER['REQUEST_URI'],'index.php') !== false && $modx->context->get('key') != 'mgr') {
            if (!empty($_GET['id'])) {
                $id = (int)$_GET['id'];
                if (!$modx->getCount('modResource', array('id' => $id, 'published' => 1, 'deleted' => 0))) {
                    $modx->sendErrorPage();
                } 
            } else {
                $id = $modx->getOption('site_start', null, 1);
            }
            $modx->sendRedirect($modx->makeUrl($id),array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
        }
        break;
}            
                Спасибо, вы не подскажите как это сделать через .htaccess или как использовать плагин? Он должен вызываться по событию? И мне кажется стоит делать редирект на страницу 404, а то он всегда на главную редиректит            
                    
                Вешаете на событие OnHandleRequest, или через файл .htaccess можна так.
                    RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]            
                Через .htaccess работает еще лучше, спасибо большое!            
                    
                Не за что!            
                    
                Повесил на событие OnHandleRequest
Попробую через .htaccess
                    <?php
if (strpos($_SERVER['REQUEST_URI'],'index.php') !== false && $modx->context->get('key') != 'mgr') {
    $modx->sendErrorPage();
}Работает отличноПопробую через .htaccess
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.