<![CDATA[ SEO транслитерация на URL - My Forums]]> https://forums.modx.com/thread/?thread=51125 <![CDATA[Re: SEO транслитерация на URL]]> https://forums.modx.com/thread/51125/seo-url#dis-post-439795
референции, необходими за местните
locale ru_RU.cp1251]]>
mikhael Oct 11, 2012, 07:41 PM https://forums.modx.com/thread/51125/seo-url#dis-post-439795
<![CDATA[Re: SEO &#1090;&#1088;&#1072;&#1085;&#1089;&#1083;&#1080;&#1090;&#1077;&#1088;&#1072;&#1094;&#1080;&#1103; &#1085;&#1072; URL]]> https://forums.modx.com/thread/51125/seo-url#dis-post-300162
Защп да е на латиница?
Защото смесването на латиница и кирилица в адреса не е никак за предпочитане - ред причини, а пък и изглежда странно и смешно...

Но най-вече заради механизма на "разчитане" на Френдли УРЛ (ФУРЛ).
Когато имаме включени ФУРЛ в Конфигурацията, то означава, че адресите на страниците ще са четими, като наименованието на документа е полето "alias". В Конфигурацията са включени няколко параметъра, които са от значение - префикс, суфикс, дублиране...
Когато ползваме ФУРЛ, то използваме файл .htaccess:

# For Friendly URLs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]


Тази част ни отвежда към правилния номер на страницата която отваряме.
Механизма за разчитане (на база параметрите по-горе) е записан в ядрото на системата.
Поради няколко причини, не е коректно да се променя самото ядро - няй-малко след ъпдейт промените ще липсват...
За това препоръчвам да се създават страниците на латиница - това означава САМО полето "alias" на документа да е на латиница.
Генерирането на страници може да стане по различни начини, но е добре в инструмента който се ползва (NewsEditor, NewsPublisher) да се вмъкне функция:

function do_translit($st) {
    $replacement = array(
        "й"=>"i","ц"=>"c","у"=>"u","к"=>"k","е"=>"e","н"=>"n",
        "г"=>"g","ш"=>"sh","щ"=>"sh","з"=>"z","х"=>"x","ъ"=>"\'",
        "ф"=>"f","ы"=>"i","в"=>"v","а"=>"a","п"=>"p","р"=>"r",
        "о"=>"o","л"=>"l","д"=>"d","ж"=>"zh","э"=>"ie","ё"=>"e",
        "я"=>"ya","ч"=>"ch","с"=>"c","м"=>"m","и"=>"i","т"=>"t",
        "ь"=>"\'","б"=>"b","ю"=>"yu",
        "Й"=>"I","Ц"=>"C","У"=>"U","К"=>"K","Е"=>"E","Н"=>"N",
        "Г"=>"G","Ш"=>"SH","Щ"=>"SH","З"=>"Z","Х"=>"X","Ъ"=>"\'",
        "Ф"=>"F","Ы"=>"I","В"=>"V","А"=>"A","П"=>"P","Р"=>"R",
        "О"=>"O","Л"=>"L","Д"=>"D","Ж"=>"ZH","Э"=>"IE","Ё"=>"E",
        "Я"=>"YA","Ч"=>"CH","С"=>"C","М"=>"M","И"=>"I","Т"=>"T",
        "Ь"=>"\'","Б"=>"B","Ю"=>"YU",
    );

    foreach($replacement as $i=>$u) {
        $st = mb_eregi_replace($i,$u,$st);
    }
    return $st;
}


която да се вика при създаването на полето "alias". Например, в NewsEditor:

      // set alias name of document used to store articles
      if(!$aliastitle){
      	$alias = 'news-'.$createdon;
      }else {
        $alias = $modx->stripTags($_POST['pagetitle']);
        $alias = do_translit($alias);
        $alias = strtolower($alias);
        $alias = preg_replace('/&.+?;/', '', $alias); // kill entities
        $alias = preg_replace('/[^\.%a-z0-9 _-]/', '', $alias);
        $alias = preg_replace('/\s+/', '-', $alias);
        $alias = preg_replace('|-+|', '-', $alias);
        $alias = trim($alias, '-');
        $alias = 'news-'.$modx->db->escape($alias);
      }

]]>
Lyubomir Mar 31, 2010, 08:31 AM https://forums.modx.com/thread/51125/seo-url#dis-post-300162
<![CDATA[Re: SEO &#1090;&#1088;&#1072;&#1085;&#1089;&#1083;&#1080;&#1090;&#1077;&#1088;&#1072;&#1094;&#1080;&#1103; &#1085;&#1072; URL]]> https://forums.modx.com/thread/51125/seo-url#dis-post-300161
* а още по-добре ако са ти на английски *
/ може да се развие дискусия по темата /]]>
lastoftheromans Mar 31, 2010, 06:42 AM https://forums.modx.com/thread/51125/seo-url#dis-post-300161
<![CDATA[SEO &#1090;&#1088;&#1072;&#1085;&#1089;&#1083;&#1080;&#1090;&#1077;&#1088;&#1072;&#1094;&#1080;&#1103; &#1085;&#1072; URL]]> https://forums.modx.com/thread/51125/seo-url#dis-post-300160
Ситуацията е следната работя сайт на локална машина в XAMPP и версия 1.0.2 на MODX, но когато прехвърлих нещата на хостинга се оказа, че URL-ите не работят както трябва.

Настройвах гласих и в крайна сметка установих, че ако примерно URL-а на страницата е:

www.domain.com/аз-правя-нещо/ама-много-добре - тогава не работи, но ако е

www.domain.com/аз-правя-нещо/afasf-ама-много-добре, т.е. има латински букви в началото на URL се отваря страницата.

Нещо ми намирисва на грешка в енкодинг на сървър или някаква настройка, но не знам от къде да подхвана нещата.

Идей?

Допълвам:

Установих, че когато се изключи опцията "Use Friendly URL alias path", т.е. е на NO нещата сработват. Но този начин не ме устройва.]]>
dtstyle Feb 02, 2010, 01:44 PM https://forums.modx.com/thread/51125/seo-url#dis-post-300160