Super MODx SEO-стриктно ускоряване на интерфейса

Михаил зададе въпрос относно канонизацията на url в MODx.
Написах му отговор, но разбрах, че е твърде голям. Затова го пренаписах в статия.

Отивам.
Проучих внимателно въпроса за канонизирането на URL адреси в MODx.
Аз. Системата от канонични URL адреси на MODx ви позволява да правите правилно автоматично пренасочване към канонични URL адреси от всички възможни неканонични такива само в един случай - това е, когато контейнерните ресурси нямат наклонена черта в края, а неконтейнерните ресурси нямат разширение като ".html".
Тези. след всички манипулации всичко URL адресите на сайта ще бъдат във формата:
с водеща наклонена черта, без ".html" и наклонена черта.

И няма много действия.
Отидете в настройките и променете следното:
- Раздел "Приятелски URL адреси":
един. контейнер_суфикс "Суфикс на контейнера" ​​- направете стойността празна;
2. friendly_urls „Използвай приятелски URL адреси“ - Да;
3. friendly_urls_strict "Строг приятелски режим на URL" - Да;
Автоматично генериране, транслитерация, вложени URL адреси, дублиране във всички контексти - настроени по вкус
- Раздел "Сайт":
4. link_tag_scheme "URL схема" - коремни мускули;
- Раздел "Шлюз":
пет. request_method_strict "Строг метод за заявка" - Да;

След това отива на „Сайт“ => „Видове съдържание“:
6. HTML текст/html - направете стойността празна.

п.с. и махнете етикета, което modx натиска в стандартния шаблон. Той изобщо не е необходим.
Но има достатъчно минуси - начинаещи, които не разбират основите, непрекъснато се спъват в него и задават въпроси в стил "Защо моите стилове не се зареждат?" като по този начин запушва вече запушеното информационно пространство.
Освен това анкерните връзки се прекъсват поради този етикет.
Като цяло, на първо място, премахнете го от стандартния шаблон и не предписвайте във вашите шаблони.

II. По-нататък във всеки шаблон вътре в маркера глава ние пишем:
След това създаваме фрагмент с име Канонична и поставете следното в него:
Този фрагмент може да вземе един параметър аргументи, в който можете да предадете низ за заявка от формата "qwe = asd & zxc = 123" или json низ, подходящ за преобразуване в масив и след това да го предадете на php функцията http_build_query.

Това е, завършихме сео-строгия каноничен.
Но дори и това по едно време ми се струваше малко.

И така, нека ви кажа какво има тук и как.
Всички преобразувания на url отчитат nginx feng shui и коректността с t. seo. Не се съмнявайте.

- Код.
Пренасочване с www. домейн към "без www."

- Код.
Ние автоматично насочваме всички поддомейни към основния домейн. Не забравяйте да добавите CNAME запис на формата към dns:
с точка в края.

- Код.
Регистрация на индексни файлове.

- Код, код.
конфигуриране на обработката на php файлове.
p.s. за редовния сезон ^/(adminka | мениджър | съединители | съединители - [_ A-Z-a-z-0-9] + | _build) / ще бъде по-нататък.

- Код.
Премахнете финала index.html от урла.

- Код.
Премахнете финала index.php от url, изпращайки го за php обработка.

- Код.
Премахнете двойни/тройни/наклонени черти от URL адреса. Описание на проблема тук.
За да работи това, трябва да добавите параметъра към http раздела
Ето кода.
Раздел http <> е във файла nginx.conf.

Разбирайки проблема, стана ясно, че nginx по подразбиране третира няколко последователни наклонени черти като едно. На входа на конфигурацията на отделен сайт nginx даде URL адреса, сякаш там няма много наклонени черти. Това се случва, защото ги "обединява" на по-високо ниво, в секцията http, в която се намира същата настройка merge_slashes. Следователно, редовните линии за изолиране на много наклонени черти не бяха практикувани. Изключването на тази настройка - всичко работи.

- Код.
Затваряме всички .htaccess/.htpasswd и подобни файлове от външен достъп. Отново предпочитам изобщо да не показвам, че такива файлове съществуват (давайки 404), вместо да предизвикам интереса на всички умни хора, които виждат, че файлът е там, но няма достъп до него (дава 403).

- Код.
Създайте файлове в основата на сайта 403.html, 404.html, 50x.html и ги проектирайте както искате. Тези файлове не могат да бъдат отворени от браузъра (това е конфигурирано), но ако има съответни грешки, nginx ще обслужва тези страници.

Ускорете интерфейса.
- Код.
Свързваме конфигурации за кеширане и други ускоряващи се фронтове от комплекта html5boilerplate.
Поправих ги малко, затова публикувам своята версия: tyts. Просто пуснете тази папка в корена на вашата инсталация nginx

- Код.
По тази тема е писано много, няма да навлизам в подробности. Въпросът е, че на всеки сайт имам всички изображения, свързани с дизайна, в папка "i"и всички скриптове прехвърлям в папката, доколкото е възможно"js".
Така че, за да няма блокиращо зареждане на външни файлове и за да може браузърът да паралелизира зареждането на изображения, скриптове и стилове, ние създаваме поддомейни i.domain.tld и js.domain.tld, кои са псевдоними на съответните папки на основния домейн (забравихте ли да регистрирате cname в dns за всички поддомейни?).