Переспрямуйте вкладену папку в кореневу папку в Apache, NGINX, IIS і Cloudflare

Переміщення сайту з підпапки до кореневого каталогу: інструкції для різних серверів

Мій веб-сайт раніше розташовувався у підкаталозі, але я вирішив перемістити його до кореневої директорії домену.

Основна мета полягала в тому, щоб зберегти структуру всіх статей, як і в підпапці, але перенаправити URL-адреси до кореня домену або іншого місця.

Налаштування перенаправлення на Apache

Веб-сервер Apache використовує функціонал `RewriteCond`. Щоб здійснити цю зміну, необхідно відредагувати файл `.htaccess` або `httpd.conf`, додавши наступні рядки:

RewriteEngine on
RewriteBase /
RewriteRule ^subfolder/(.*)$ /$1 [R=301,NC,L]

У цьому випадку за основу взято `/`, а `RewriteRule` обробляє всі URL-адреси у підкаталозі, використовуючи регулярні вирази. Параметр `R=301` забезпечує постійне перенаправлення.

Налаштування перенаправлення на Nginx

Подібне перенаправлення можна реалізувати за допомогою веб-сервера Nginx, використовуючи директиву `rewrite` у файлі `/etc/nginx/nginx.conf` або `/etc/nginx/conf.d/default.conf`:

location ^~ /subfolder {
     rewrite ^/subfolder(.*)$ $1 last;
}

Модифікатор `^~` гарантує, що це розташування з префіксом матиме пріоритет, навіть якщо в майбутньому будуть додані інші розташування з регулярними виразами.

Налаштування перенаправлення на IIS

В IIS можна скористатися модулем Rewrite для перенаправлення URL-адрес з підкаталогу до кореня. Для цього відредагуйте файл `web.config`, розташований у кореневій папці веб-сервера (%SystemDrive%inetpubwwwroot), додавши наступний конфігураційний блок:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Root_URL_Rewrite" stopProcessing="true">
                    <match url="^(.*)" />
                    <action type="Rewrite" url="/subfolder/{R:0}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Також можна використовувати графічний інтерфейс “Rewrite URL” в диспетчері IIS для створення правила перенаправлення.

Налаштування перенаправлення через Cloudflare

Перенаправлення можна налаштувати через Cloudflare, виконавши наступні кроки:

  • Увійдіть до свого облікового запису Cloudflare.
  • Виберіть потрібний обліковий запис Cloudflare для домену, для якого потрібно додати перенаправлення.
  • Перейдіть до розділу “Правила”, а потім оберіть вкладку “Правила сторінки”.
  • У розділі “Правила сторінки” натисніть “Створити правило сторінки”. Відкриється діалогове вікно для створення правила.
  • У полі “Якщо URL-адреса збігається” введіть шаблон URL-адреси для підпапки, наприклад: `https://example.com/subfolder`.
  • Натисніть “Додати налаштування” та виберіть “URL-адреса пересилання” зі списку.
  • Натисніть “Вибрати код стану” і оберіть `301` (постійне перенаправлення) або `302` (тимчасове перенаправлення).
  • Введіть цільову URL-адресу для кореневого домену та натисніть “Зберегти та розгорнути”, щоб завершити налаштування.

Наприклад, наведене вище налаштування перенаправить всі запити з `https://techukraine.net.com/blog` на `https://techukraine.net.com`.

Висновок

Як бачите, перенаправлення запитів з підкаталогу на кореневу або іншу URL-адресу є досить поширеним завданням, яке підтримується більшістю популярних веб-серверів і сервісів з різними варіантами налаштування.

Далі ви можете дізнатися, як розмістити декілька веб-сайтів на одній IP-адресі.

Чи була ця стаття корисною? Поділіться нею зі своїми друзями!