## ✅ TL;DR (Швидкі рішення, які варто спробувати першими)
1. **Онови постійні посилання (Permalinks):**
* Перейди в **Адмінку WordPress → Налаштування → Постійні посилання**.
* Просто натисни **«Зберегти зміни»**, навіть якщо нічого не змінюєш.
* Це оновить `.htaccess` — часто цього достатньо, щоб виправити дивну поведінку 404.
2. **Перевір файл `.htaccess`:**
* Він має містити базові правила для WordPress. Ось стандартний вміст:
```apache
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
```
* Переконайся, що цей блок існує і не перекривається іншими правилами вище нього.
---
## ???? Чому `/2021/02/` показує порожню сторінку від VPS?
Це **архівні сторінки за датою** (`/рік/місяць/`). Зазвичай WordPress намагається знайти пости за цей період.
Але якщо **раніше пости були, а зараз видалені**, WordPress все одно намагається завантажити архів — і провалюється. У такому випадку **не WordPress, а вебсервер** (Apache або Nginx) показує свою власну 404-сторінку — звідси й порожня сторінка за замовчуванням VPS.
---
## ????️ Як виправити 404 на архівах за датою
### 1. **Примусити WordPress показувати свій 404.php**
Навіть якщо постів у цьому місяці немає — ми хочемо, щоб WordPress сам обробив запит.
Додай цей код у `functions.php` своєї теми:
```php
add_action('template_redirect', function() {
if (is_date() && !have_posts()) {
global $wp_query;
$wp_query->set_404();
status_header(404);
nocache_headers();
include get_query_template('404');
exit;
}
});
```
Цей код змушує WordPress показати власну 404-сторінку, навіть для порожніх архівів.
---
### 2. **Не дозволяй серверу перехоплювати 404**
Якщо сервер показує свою "рідну" сторінку замість теми WordPress:
* **Apache**: Перевір, чи `.htaccess` дозволяє обробку всіх URL через WordPress, особливо архівів.
* **Nginx**: Переконайся, що в блоці `location /` є рядок:
```nginx
try_files $uri $uri/ /index.php?$args;
```
Інакше запит може "обірватися" ще до WordPress.
---
### 3. **Перевір логи сервера**
Щоб точно зрозуміти, що відбувається:
* Подивись **логи Apache/Nginx** під час запиту до `/2021/02/`.
* Якщо запит не доходить до `index.php` — значить сервер обробляє його до WordPress.
---
### 4. **(Опційно) Перенаправ старі URL архівів**
Якщо не хочеш, щоб такі сторінки індексувались пошуковиками — можеш їх редіректити через `.htaccess` або плагін типу **Redirection**.
Приклад правила в `.htaccess`, яке перенаправляє архіви на сторінку блогу:
```apache
RedirectMatch 301 ^/202[0-9]/[01][0-9]/$ /blog/
```
---
## ✅ Що конкретно треба зробити:
1. Збережи налаштування постійних посилань (навіть без змін).
2. Перевір `.htaccess` або конфіг Nginx — щоб усі запити обробляв WordPress.
3. Додай код у `functions.php`, щоб архіви без постів віддавали `404.php`.
4. (Опційно) Додай редіректи, якщо ці URL більше не потрібні.
---
Якщо скажеш, чи в тебе **Apache** чи **Nginx** — можу дати конкретні налаштування під твій сервер.