2.4.1.1.2. Кореневий каталог сайту

flowchart LR account(📁 ~) site(📁 example.com) www(📁 www) sub(📁 sub) account---site---www & sub www-files("📄 Файли example.com") sub-files("📄 Файли sub.example.com") www-.-www-files sub-.-sub-files

У кореневому каталозі хостинг-акаунта розміщуються каталоги з назвами основних доменів, усередині кожного з яких знаходяться каталог основного домену і каталоги його піддоменів. На діаграмі: ~ — кореневий каталог хостинг-акаунта, example.com — каталог з назвою основного домену, www — каталог з файлами основного домену, sub — каталог з файлами піддомену sub.

Каталогом основного домену завжди є www (шлях до нього виглядає як ~/example.com/www). Хоч каталог і має таку назву, робота основного домену з www або без www з ним жодним чином не пов'язана і налаштовується іншими способами: через панель керування (див. Налаштування редиректу на адресу з www або без www), .htaccess або адмін-панель CMS, що використовується на сайті.

Назви каталогів піддоменів відповідають назвам піддоменів без основного домену (наприклад, для піддомену sub.example.com каталог буде називатися sub, а шлях до нього буде виглядати як ~/example.com/sub).

Важливі моменти:

  • Вказаний каталог має бути в межах стандартного кореневого каталогу сайту. Допускається вказання вкладених каталогів.
  • Для спрямування декількох доменів на один сайт використовуйте псевдоніми.
  1. Відкрийте розділ «Налаштування сайту».
  2. У полі «Кореневий каталог» вкажіть назву підкаталогу і збережіть зміни:
  3. Зачекайте кілька хвилин, поки зміни набудуть чинності.

Увага!

Використання альтернативних способів може призводити до некоректної роботи сайту. За можливості намагайтеся змінювати каталог через панель керування.

Якщо потрібно розмістити сайт не в кореневому каталозі www, а, наприклад, у каталозі www/dir, створіть файл index.php з таким вмістом:

<?php
require_once("dir/index.php");

Замість dir/index.php вкажіть шлях до індексного файлу вашого сайту.

Створений файл розмістіть у кореневому каталозі сайту і встановіть права для нього рівними 750.

Також обов'язково встановіть значення параметра open_basedir на рівень вище для доступу до інших каталогів сайту.

У деяких фреймворках основний каталог сайту з індексним файлом обов'язково має розміщуватися не в кореневому каталозі сайту, а в підкаталозі public або web (або іншому).

Для вирішення такого завдання можна в кореневому каталозі сайту створити файл .htaccess з таким вмістом:

DirectoryIndex /public/index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.+) $1 [L]
RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -f
RewriteRule ^(.+) /public/$1 [L]

Інший варіант:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/web/.*$
RewriteRule ^(.*)$ /web/$1 [QSA,L]

Ще один варіант:

RewriteEngine On
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]

Помилки на сайті, які можуть бути пов'язані з кореневим каталогом:

  • 403 — перевірте в кореневому каталозі сайту наявність індексного файлу і загалом правильність розміщення файлів сайту.
  • 404 — переконайтеся, що шлях із поля «Кореневий каталог» реально існує.
Зміст

    (4)