Цитата |
---|
написал: AddEventHandler("main", "OnEpilog", "OnABCtoabc"); function OnABCtoabc(){ $notBitrix = strpos($_SERVER['REQUEST_URI'], '/bitrix/'); if ( $_SERVER['REQUEST_URI'] != strtolower( $_SERVER['REQUEST_URI']) && $notBitrix === false) { header('Location: //'.$_SERVER['HTTP_HOST'] . strtolower($_SERVER['REQUEST_URI']), true, 301); exit(); } } в init.php Проблем в работе скрипта пока не нашла, буду рада, если что-то вскроется |
Проблема в том, что гет параметры он тоже занижает. Вместо ?param=Y, который ожидают многие компоненты, в адресную строку попадает ?param=y
Добавил проверку на наличие "?" в строке запроса.
В теории можно обойтись без дополнительного if, используя условные выражения, но мне такой код показался слишком страшным. Тут вроде читабельней. Если у кого будут варианты получше, докидывайте сюда
Код |
---|
AddEventHandler("main", "OnEpilog", "OnABCtoabc");
function OnABCtoabc(){
$notBitrix = strpos($_SERVER['REQUEST_URI'], '/bitrix/');
$haveGet = strripos($_SERVER['REQUEST_URI'], "?") !== false;
if ($haveGet) {
$url = explode("?", $_SERVER['REQUEST_URI']);
if (($_SERVER['REQUEST_URI'] != strtolower($url[0]) . "?" . $url[1]) && $notBitrix === false) {
header('Location: //' . $_SERVER['HTTP_HOST'] . strtolower($url[0]) . "?" . $url[1], true, 301);
exit();
}
} else {
if ($_SERVER['REQUEST_URI'] != strtolower($_SERVER['REQUEST_URI']) && $notBitrix === false) {
header('Location: //' . $_SERVER['HTTP_HOST'] . strtolower($_SERVER['REQUEST_URI']), true, 301);
exit();
}
}
} |