2.4.1.1.2. Кореневий каталог сайту
Стандартні шляхи
У кореневому каталозі хостинг-акаунта розміщуються каталоги з назвами основних доменів, усередині кожного з яких знаходяться каталог основного домену і каталоги його піддоменів. На діаграмі: ~ — кореневий каталог хостинг-акаунта, example.com — каталог з назвою основного домену, www — каталог з файлами основного домену, sub — каталог з файлами піддомену sub.
Каталогом основного домену завжди є www (шлях до нього виглядає як ~/example.com/www). Хоч каталог і має таку назву, робота основного домену з www або без www з ним жодним чином не пов'язана і налаштовується іншими способами: через панель керування (див. Налаштування редиректу на адресу з www або без www), .htaccess або адмін-панель CMS, що використовується на сайті.
Назви каталогів піддоменів відповідають назвам піддоменів без основного домену (наприклад, для піддомену sub.example.com каталог буде називатися sub, а шлях до нього буде виглядати як ~/example.com/sub).
Зміна
Важливі моменти:
- Вказаний каталог має бути в межах стандартного кореневого каталогу сайту. Допускається вказання вкладених каталогів.
- Для спрямування декількох доменів на один сайт використовуйте псевдоніми.
- Відкрийте розділ «Налаштування сайту».
- У полі «Кореневий каталог» вкажіть назву підкаталогу і збережіть зміни:

- Зачекайте кілька хвилин, поки зміни набудуть чинності.
Альтернативні способи
Увага!
Використання альтернативних способів може призводити до некоректної роботи сайту. За можливості намагайтеся змінювати каталог через панель керування.index.php
Якщо потрібно розмістити сайт не в кореневому каталозі www, а, наприклад, у каталозі www/dir, створіть файл index.php з таким вмістом:
<?php
require_once("dir/index.php");
Замість dir/index.php вкажіть шлях до індексного файлу вашого сайту.
Створений файл розмістіть у кореневому каталозі сайту і встановіть права для нього рівними 750.
Також обов'язково встановіть значення параметра open_basedir на рівень вище для доступу до інших каталогів сайту.
.htaccess
У деяких фреймворках основний каталог сайту з індексним файлом обов'язково має розміщуватися не в кореневому каталозі сайту, а в підкаталозі 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 — переконайтеся, що шлях із поля «Кореневий каталог» реально існує.