настройка редиректа ngnix

Всем привет! У меня на сервере под управлением ngnix перестал перевыпускаться SSL сертификат.
опытным путем установил что из-за строчки в правилах сервера:
if ($request_uri !~* "(?:\?)|(?:\.\w+$)|(?:\/$)") {
    return 301 $request_uri/;
}
Кто знает что она делает и почему не перевыпускаются сертификаты из-за нее?
Roman
11 июля 2020, 18:06
modx.pro
694
0

Комментарии: 4

SEQUEL.ONE
11 июля 2020, 23:53
0
Насколько я понимаю этот код делает редирект с алиаса без слеша на алис со слешем на конце.
    Roman
    24 июля 2020, 12:27
    0
    Но только вот почему это мешает продлить SSL сертификат?
      SEQUEL.ONE
      24 июля 2020, 13:24
      0
      Удалите эту секцию. А редиректы через плагин сделайте. Я вечером за компом буду, скину код плагина.
        SEQUEL.ONE
        24 июля 2020, 20:07
        0
        Заходим в админке в раздел «Тип содержимого» и меняем
        .html
        на слэш
        /
        Добавляем плагин и вешаем на событие OnHandleRequest:

        <?php
        if ($modx->event->name != "OnHandleRequest" || $modx->context->key == 'mgr') {
        		return;
        	}
            $uri = $_SERVER['REQUEST_URI'];
            if (substr($uri, -1) != '/' && $uri != '/' && !strpos($uri, '?')&& !strpos($uri, '.')) {
            	$url = $modx->getOption('site_url');
            	if(substr($url, -1)=='/'){
            		$url=substr($url, 0, -1);
            	}
            	$url .= $uri.'/';
            	$modx->sendRedirect($url,array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
            }
        	
        	if ($_SERVER['REQUEST_URI'] != '/') {
        		$uri = strtok(substr($_SERVER['REQUEST_URI'], 1), '?');
        		
        		if ($uri == 'index.php') {
        			$uri = intval(str_replace('/index.php?id=', '', $_SERVER['REQUEST_URI']));
        			//не уверен, нужна ли здесь проверка на наличие ресурса, т.к. в случае отсутствия оного, событие должно перехватить OnPageNotFound
        			
        			if(empty($uri)) {
        				$url = 1;
        			}
        
        			$modx->sendRedirect($modx->makeUrl($uri));
        		}
        	}
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    4