Часам складана падабраць назву для паста, але апісаць праблему, з якой пастаянна сутыкаюся, як-то інакш у мяне не атрымалася. Сутнасць праблемы, што калі мною прызначаецца асноўнае люстэрка, прапісваецца ў .htaccess і пасля я выпадкова лагіна ў адмінку па дадатковым люстэрка, то я атрымліваю масу артэфактаў як на Evolution, так і на Revolution. Бо кожны раз я пачынаю шукаць прычыну, чаму так адбываецца, а праз паўгадзіны чартыхаючыся ўспамінаю пра дадзеную праблему, вырашыў напісаць гэты пост.
Многія вэбмайстра вынікаючы рэкамендацыям пошукавых сістэм робяць рэдырэкт з дадатковага люстэрка на асноўнае, напрыклад з www поддомен на асноўны дамен. І любімая намі сістэма Modx, што Evolution, што Revolution, падае нам гатовае рашэнне ў htaccess. Дастатковая прыпісаць асноўнае люстэрка і расскоментировать радкі, і вуаля, у нас з'явілася асноўнае люстэрка.
# Rewrite www.domain.com -> domain.com - used with SEO Strict URLs plugin #RewriteCond% {HTTP_HOST}. #RewriteCond% {HTTP_HOST}! ^ Example-domain-please-change \ .com [NC] #RewriteRule (. *) Http://example-domain-please-change.com/$1 [R = 301, L] # # or for the opposite domain.com -> www.domain.com use the following # DO NOT USE BOTH # RewriteCond% {HTTP_HOST}. RewriteCond% {HTTP_HOST}! ^ Www \ .devmarks \ .ru [NC] RewriteRule (. *) Http://www.devmarks.ru/$1 [R = 301, L]Аднак, як пісалася ў пачатку, калі пры гэтым залагініцца ў адмінку па дадатковым люстэрка, то адразу вылазяць артэфакты. На ўсялякі выпадак апішу іх. Асноўныя прыкметы, што вы патрапілі ў такую сітуацыю для Evo гэта, як правіла, не працуючы візуальны рэдактар, альбо не працуюць яго часткі, напрыклад, пустое акно tinymce пры працы з малюнкамі:
Асноўныя прыкметы для Revo гэта пустое левае дрэва, пры гэтым пустыя як дрэва дакументаў, астатнія ўкладкі левага меню.
Знайсці рашэнне гэтай праблемы ў лоб, з выкарыстаннем htaccess не атрымалася, так як для тэчкі / manager / у дадзеным файле RewriteEngine выключаны, а такім чынам уплываць праз яго мы не можам. У выніку было прынята рашэнне ўнесці змены ў /manager/index.php.
Такім чынам, калі мы зрабілі асноўным люстэркам поддомен з www, то ў пачатку index.php ў тэчцы / manager / прапісваем наступную канструкцыю:
if (! preg_match ( '/ ^ www \ ./',$_ SERVER [' HTTP_HOST '])) header (' Location: http: //www.'.$_SERVER [ 'HTTP_HOST']. ($ _SERVER [ 'REQUEST_URI ']? $ _ SERVER [' REQUEST_URI ']:' '));Калі ж мы зрабілі асноўным люстэркам дамен без www, то ў пачатку index.php ў тэчцы / manager / прапісваем наступную канструкцыю:
if (preg_match ( '/ ^ www \ ./',$_ SERVER [' HTTP_HOST '])) header (' Location: http: //'.str_replace ( 'www.', '', $ _ SERVER [ 'HTTP_HOST'] ). ($ _ SERVER [ 'REQUEST_URI']? $ _ SERVER [ 'REQUEST_URI']: ''));Рашэнне далёка ад ідэалу, да таго ж даводзіцца кіраваць код, а такім чынам сачыць, каб ён не зацёр пры чарговым апдэйце. Але на дадзены момант іншага рашэння не знайшоў. Калі ў кагосьці ёсць рашэнне лепей, напішыце ў каментарах.
UPD: Яшчэ адзін момант, які варта адзначыць, што на некаторых хостынгах 301 рэдырэкт на асноўнае люстэрка можна наладзіць у наладах вэб сервера. На іх падобных танцаў з бубнам ня трэба.
«Минификация HTML Бенчмаркетынгу хостынгу » SERVER [ 'REQUEST_URI ']?SERVER [ 'REQUEST_URI']?