Найден корректный robots.txt
Файл управления сканированием сайта роботами
?
Robots.txt указывает поисковым роботам, какие страницы сканировать, а какие — нет. Ошибки в файле могут случайно закрыть важные разделы от индексации.
Кол-во редиректов для файла robots.txt 3 слишком большое! Это может вызывать затруднение при индексации поисковыми роботами!
Проверяемая страница не запрещена в robots.txt.
Цепочка редиректов для файла robots.txt:
http://planner-dp.ru/robots.txt
301 MovedPermanently
https://planner-dp.ru/robots.txt
302 Found
https://planner-dp.ru/login
200 OK
Показать содержимое robots.txt
<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Вход · Планнер задач</title>
<link rel="stylesheet" href="/fonts/fonts.css">
<style>
/* ── Дизайн-система «Донченко и партнёры» ───────────────────────────────── */
:root{
--brand-graphite:#161616; --brand-gold:#CBA14C; --brand-ivory:#F4F0E8;
--gold-300:#E6CF89; --gold-700:#9C7A28;
--warm-200:#E4DECF; --warm-300:#C2BBA9; --warm-500:#7E776B; --warm-600:#5E574C; --warm-700:#38332C;
--bg-page:#F4F0E8; --bg-surface:#FFFFFF; --bg-sunken:#EEE9DE;
--text-primary:#161616; --text-secondary:#5E574C; --text-muted:#7E776B;
--text-on-dark:#F4F0E8; --text-danger:#8A2B2B;
--border-subtle:rgba(22,22,22,0.12); --border-default:rgba(22,22,22,0.20);
--border-gold:rgba(203,161,76,0.55); --border-on-dark:rgba(244,240,232,0.16);
--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
--tracking-tight:-0.02em; --tracking-wide:0.04em; --tracking-eyebrow:0.22em;
--radius-md:6px; --radius-lg:10px;
--shadow-lg:0 12px 36px rgba(22,22,22,0.12); --shadow-gold:0 6px 20px rgba(203,161,76,0.28);
--focus-ring:0 0 0 3px rgba(203,161,76,0.45);
--ease:cubic-bezier(0.2,0,0,1);
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:var(--font-sans);color:var(--text-primary);background:var(--bg-page);
display:grid;grid-template-columns:1.05fr .95fr;min-height:100vh}
/* ── Левая графитовая панель ── */
.brand{position:relative;background:var(--brand-graphite);color:var(--text-on-dark);
padding:56px 56px 44px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}
/* тонкая золотая сетка-текстура */
.brand::before{content:'';position:absolute;inset:0;opacity:.14;pointer-events:none;
background-image:linear-gradient(var(--brand-gold) 1px,transparent 1px),linear-gradient(90deg,var(--brand-gold) 1px,transparent 1px);
background-size:64px 64px;
-webkit-mask-image:radial-gradient(120% 90% at 12% 8%,#000 0%,transparent 72%);
mask-image:radial-gradient(120% 90% at 12% 8%,#000 0%,transparent 72%);}
.brand::after{content:'';position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--brand-gold);opacity:.5}
.brand > *{position:relative;z-index:1}
.mono{width:74px;height:74px;border:1px solid var(--border-gold);border-radius:var(--radius-lg);
display:flex;align-items:center;justify-content:center;color:var(--brand-gold);
font-size:26px;font-weight:600;letter-spacing:.5px;background:rgba(203,161,76,.06)}
.brand-name{font-size:34px;font-weight:600;letter-spacing:.06em;line-height:1.15;margin:30px 0 0;text-transform:uppercase}
.rule{width:64px;height:2px;background:var(--brand-gold);margin:22px 0 18px}
.descriptor{font-size:13px;font-weight:600;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--brand-gold)}
.brand-note{font-size:15px;line-height:1.55;color:rgba(244,240,232,.72);max-width:34ch;margin-top:26px}
.brand-foot{font-size:12.5px;letter-spacing:var(--tracking-wide);color:rgba(244,240,232,.45)}
/* ── Правая часть: форма ── */
.side{display:flex;align-items:center;justify-content:center;padding:40px 32px}
.box{width:100%;max-width:390px}
.eyebrow{font-size:12px;font-weight:600;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--gold-700);margin-bottom:10px}
h1{font-size:30px;font-weight:600;letter-spacing:var(--tracking-tight);margin:0 0 6px}
.sub{color:var(--text-secondary);font-size:15px;margin:0 0 28px}
label{display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-wide);
color:var(--text-secondary);margin-bottom:7px}
input{width:100%;padding:13px 14px;border:1px solid var(--border-default);border-radius:var(--radius-md);
background:var(--bg-surface);color:var(--text-primary);font-size:16px;font-family:inherit;margin-bottom:18px;
transition:border-color 120ms var(--ease),box-shadow 120ms var(--ease)}
input:focus{outline:none;border-color:var(--brand-gold);box-shadow:var(--focus-ring)}
button{width:100%;padding:14px;border:1px solid var(--brand-graphite);border-radius:var(--radius-md);
background:var(--brand-graphite);color:var(--brand-ivory);font-size:15.5px;font-weight:600;
letter-spacing:var(--tracking-wide);cursor:pointer;font-family:inherit;
transition:background 200ms var(--ease),box-shadow 200ms var(--ease),border-color 200ms var(--ease)}
button:hover{background:#000;border-color:var(--brand-gold);box-shadow:var(--shadow-gold)}
button:disabled{opacity:.6;cursor:default;box-shadow:none}
.err{color:var(--text-danger);font-size:14px;margin:0 0 16px;padding:11px 13px;display:none;
background:rgba(138,43,43,.07);border-left:2px solid var(--text-danger);border-radius:0 var(--radius-md) var(--radius-md) 0}
.err.show{display:block}
.foot{color:var(--text-muted);font-size:13px;text-align:center;margin-top:22px;line-height:1.7}
.foot a{color:var(--gold-700);font-weight:600}
@media (max-width:900px){
body{grid-template-columns:1fr;grid-template-rows:auto 1fr}
.brand{padding:28px;flex-direction:row;align-items:center;gap:18px;justify-content:flex-start}
.brand::after{top:auto;bottom:0;left:0;right:0;width:auto;height:1px}
.mono{width:52px;height:52px;font-size:18px;flex-shrink:0}
.brand-name{font-size:20px;margin:0}
.rule{display:none} .brand-note{display:none} .brand-foot{display:none}
.descriptor{font-size:11px;margin-top:5px}
.side{padding:36px 24px}
}
/* ══ СЛОНОВАЯ КОСТЬ — светлая фирменная гамма «Донченко и партнёры» ════════
Фон #F4F0E8 · Карточка #FFFFFF · Золото #CBA14C · Графит #161616
Правило: ЗОЛОТО = кнопки (действия). Статусы — смысловые цвета. */
:root{
--brand-graphite:#161616; --brand-gold:#CBA14C; --brand-ivory:#F4F0E8;
--gold-300:#E6CF89; --gold-500:#CBA14C; --gold-700:#9C7A28;
--paper:#F4F0E8; --paper-2:#EFEADF; --card:#FFFFFF;
--ink:#161616; --ink-2:#5E574C; --ink-3:#8A857C;
--hair:rgba(22,22,22,.12); --hair-2:rgba(22,22,22,.20);
--gold-bg:rgba(203,161,76,.16); --gold-line:rgba(203,161,76,.55);
--hot:#A33B2E; --hot-bg:rgba(163,59,46,.10); --hot-line:rgba(163,59,46,.35);
--ok:#3F6B4A; --ok-bg:rgba(63,107,74,.10); --ok-line:rgba(63,107,74,.30);
--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
--tracking-tight:-0.02em; --tracking-wide:0.04em; --tracking-eyebrow:0.22em;
--radius-sm:3px; --radius-md:6px; --radius-lg:10px; --radius-pill:999px;
--focus-ring:0 0 0 3px rgba(203,161,76,.40);
--ease-standard:cubic-bezier(0.2,0,0,1); --dur-base:200ms;
/* карта на имена, которыми пользуется разметка */
--bg-base:var(--paper); --bg-glow1:#F7F3EC; --bg-glow2:#F1ECE1;
--bg-page:var(--paper); --bg-surface:var(--card); --bg-sunken:var(--paper-2);
--surface:var(--card); --surface-2:var(--paper-2); --elevated:#E7E1D4;
--text-primary:var(--ink); --muted:var(--ink-2); --text-secondary:var(--ink-2);
--faint:var(--ink-3); --text-muted:var(--ink-3);
--line:var(--hair); --border-subtle:var(--hair); --border-default:var(--hair-2);
--border-gold:var(--gold-line); --gold:var(--brand-gold);
--accent:var(--brand-gold); --accent-2:var(--gold-700); --accent-soft:var(--gold-bg);
--med:var(--gold-700); --low:var(--ok); --none:#C2BBA9; --stage-empty:#E7E1D4;
--text-danger:var(--hot); --text-success:var(--ok); --err:var(--hot);
--shadow-sm:0 1px 3px rgba(22,22,22,.07);
--shadow-md:0 4px 14px rgba(22,22,22,.09);
--shadow-lg:0 14px 38px rgba(22,22,22,.13);
--shadow-gold:0 6px 18px rgba(203,161,76,.30);
--radius:10px;
}
html{ color-scheme: light; }
/* ── Светлая база ── */
body{ background:var(--paper) !important; color:var(--ink) !important; font-family:var(--font-sans); }
::placeholder{ color:var(--ink-3); opacity:1; }
::selection{ background:rgba(203,161,76,.30); }
input,select,textarea{
background:#FFFFFF !important; color:var(--ink) !important; border:1px solid var(--hair-2) !important; }
input:focus,select:focus,textarea:focus{
border-color:var(--brand-gold) !important; box-shadow:var(--focus-ring) !important; outline:none !important; }
/* ЗОЛОТЫЕ КНОПКИ — все действия */
button[type=submit], button.primary, .btn.primary, .tp-btn, .add-btn, .mini-add, .open-btn{
background:var(--brand-gold) !important; color:#161616 !important;
border:1px solid var(--brand-gold) !important; font-weight:700 !important; box-shadow:none !important; }
button[type=submit]:hover, button.primary:hover, .btn.primary:hover, .tp-btn:hover,
.add-btn:hover, .mini-add:hover, .open-btn:hover{
background:#D9B466 !important; border-color:#D9B466 !important; box-shadow:var(--shadow-gold) !important; }
.tp-ghost, .ghost, a.btn, button.ghost{
background:#FFFFFF !important; color:var(--ink) !important; border:1px solid var(--hair-2) !important; }
.tp-ghost:hover, .ghost:hover, a.btn:hover{ border-color:var(--brand-gold) !important; }
/* Логотип вместо текстовой монограммы */
.brandbar .mono, .brand .mono, .logo{
width:auto !important; height:34px !important; border:0 !important; background:none !important;
padding:0 !important; font-size:0 !important; border-radius:0 !important; }
.brandbar .mono img, .brand .mono img, .logo img{ height:100%; width:auto; display:block; }
/* ── Разворот входа: обе половины светлые ── */
body{ background:var(--paper) !important; }
.brand{ background:#FFFFFF !important; border-right:1px solid var(--hair); }
.brand::before{ opacity:.06 !important; }
.brand::after{ background:var(--brand-gold) !important; opacity:1 !important; }
.brand-name{ color:var(--ink) !important; }
.descriptor{ color:var(--gold-700) !important; }
.brand-note{ color:var(--ink-2) !important; }
.brand-foot{ color:var(--ink-3) !important; }
.side{ background:var(--paper) !important; }
h1,.ltitle{ color:var(--ink) !important; }
.sub,.note,.foot{ color:var(--ink-2) !important; }
label{ color:var(--ink-2) !important; }
.eyebrow{ color:var(--gold-700) !important; }
.who{ background:#FFFFFF !important; border:1px solid var(--hair) !important; border-left:2px solid var(--brand-gold) !important; }
.who .nm{ color:var(--ink) !important; }
.who .lg{ color:var(--ink-3) !important; }
.err,.msg.err{ background:var(--hot-bg) !important; border-left:2px solid var(--hot) !important; color:var(--hot) !important; }
.msg.ok{ background:var(--ok-bg) !important; border-left:2px solid var(--ok) !important; color:var(--ok) !important; }
button{ background:var(--brand-gold) !important; color:#161616 !important; border:1px solid var(--brand-gold) !important; font-weight:700 !important; }
button:hover{ background:#D9B466 !important; box-shadow:var(--shadow-gold) !important; }
/* логотип крупнее на входе */
.brand .mono{ height:56px !important; }
.brand{padding:40px 26px 34px!important}.brand .mono{height:96px!important}.brand-foot{display:none!important}.brand .mono{display:block!important;justify-content:flex-start!important}</style>
<style>.brand{padding-left:16px!important}.brand .mono{display:block!important}</style><link rel="icon" type="image/svg+xml" href="/brand/favicon.svg?v=5"></head>
<body>
<aside class="brand">
<div>
<div class="mono"><img src="/brand/logo-dark.svg" alt="Донченко и партнёры — тендеры и право"></div>
<div class="rule"></div>
<p class="brand-note">Внутренний планнер задач. Доступ только для сотрудников компании.</p>
</div>
<div class="brand-foot">С 2019 года · Санкт-Петербург</div>
</aside>
<main class="side">
<form class="box" id="f" autocomplete="on">
<div class="eyebrow">Планнер задач</div>
<h1>Вход в систему</h1>
<p class="sub">Введите логин и пароль, выданные вам в компании.</p>
<p class="err" id="err"></p>
<label for="login">Логин</label>
<input id="login" name="username" type="text" autocomplete="username" autocapitalize="none" spellcheck="false" required>
<label for="password">Пароль</label>
<input id="password" name="password" type="password" autocomplete="current-password" required>
<button type="submit" id="btn">Войти</button>
<div class="foot">Нет доступа? <a href="/register">Подать заявку на регистрацию</a><br>Забыли пароль — попросите новую ссылку у руководителя.</div>
</form>
</main>
<script>
var f=document.getElementById('f'), err=document.getElementById('err'), btn=document.getElementById('btn');
f.addEventListener('submit', async function(e){
e.preventDefault();
err.classList.remove('show'); btn.disabled=true; btn.textContent='Проверяем…';
try{
var r=await fetch('/login',{method:'POST',headers:{'Content-Type':'application/json'},
body:JSON.stringify({login:document.getElementById('login').value.trim(),password:document.getElementById('password').value})});
var d=await r.json().catch(function(){return {};});
if(r.ok){ location.href='/tasks.html'; return; }
err.textContent=d.error||'Не удалось войти'; err.classList.add('show');
}catch(ex){ err.textContent='Сервер недоступен'; err.classList.add('show'); }
btn.disabled=false; btn.textContent='Войти';
});
document.getElementById('login').focus();
</script>
</body>
</html>