Дата публикации : 2024.01.02
Автор: Виноградов Александр

Редиректы Битрикс если не помог htaccess

В файлеlocal/php_interface/название-сайта/init.phpпрописываем нужные нам редиректы

Вы можете использовать нужные Вам директивы, ненужные удалить.

<?php
AddEventHandler
("main""OnBeforeProlog""MyOnBeforePrologHandler"50);
function 
MyOnBeforePrologHandler()
{
    
$siteHost = ((!empty($_SERVER['HTTPS'])) ? 'https' 'http') . '://' $_SERVER['HTTP_HOST'] ;
    
    
$siteUrl $siteHost $_SERVER['REQUEST_URI'];
    
   
/* Переадресации :*/
   
   /* с  http на https */
   
if (empty($_SERVER['HTTPS'])) 
   {
     
header("HTTP/1.1 301 Moved Permanently");
       
header("Location: ".'https''://' $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
       die();
   }
   
    
/*  с www на без www */
   
if (preg_match('/\/\/www/'$siteUrl) ) 
   {
       
$siteUrl str_replace('www.'''$siteUrl);
       
header("HTTP/1.1 301 Moved Permanently");
       
header("Location: ".$siteUrl);
       die();
   }
    
   
/* Склейка главной переадресуем с  /index.php, /index.html на главную страницу  */
    
   
if (trim($_SERVER['REQUEST_URI'],'/') == 'index.php' or  trim($_SERVER['REQUEST_URI'],'/') == 'index.html') {
 
        
header("HTTP/1.1 301 Moved Permanently");
        
header("Location: ".$siteHost);
        die();
    }
    
    
   
/*Если главная страница прекращаем работу скрипта */
   
if ($_SERVER['REQUEST_URI'] == '/' ) {
        return;
    }
    
    
/*Если на главной есть слеш переадресуем на главную без слеша */
     
if (preg_match('/^\/{1,}$/Uis'$_SERVER['REQUEST_URI']) ) {
         
$url $string rtrim($siteUrl'/');
         
header("HTTP/1.1 301 Moved Permanently");
         
header("Location: ".$url);
         die(); 
    }
    
    
    
     
/*Если есть get параметры прекращаем работу скрипта (иногда это нужно)*/
    
if ($_SERVER['QUERY_STRING']!='' or $_SERVER['QUERY_STRING']=='&' or $_SERVER['QUERY_STRING']=='?'  )
    {
        return;
    }

    
    
/*Множественные слеши в конце url редирект на 1 слеш в конце*/
    
if ( preg_match('/[^\/]\/{2,}$/Uis'$_SERVER['REQUEST_URI']) ) 
    {
           
$url $string rtrim($siteUrl'/');
           
header("HTTP/1.1 301 Moved Permanently");
           
header("Location: ".$url.'/');
           die(); 
    }
    
    
    
/*Нет слеша в конце вообще тогда редирект на 1 слеш в конце*/
    
if ( !preg_match('/[^\/]\/{1,}$/Uis'$_SERVER['REQUEST_URI'])) 
    {
       
       
/*за исключением файлов*/
        
if ( !preg_match('/^.*\.(jpg|jpeg|png|gif|webp|zip|rar|gzip|svg|js|css|scss)$/i'$_SERVER['REQUEST_URI']) )
        {
            
          
              
header("HTTP/1.1 301 Moved Permanently");
              
header("Location: ".$siteUrl.'/');
              die(); 
        }
        
         
    }
    
   
    
 
   
}

Комментарии
Наверх страницы