• UAH
  • USD
  • RUB
  • EUR
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепр
  • +38(062) 210-24-93  Донецк
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 449-04-21  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 007-72-35  MTC
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

Можно ли изменить корневую папку сайта с www на другую?

Хостинг Украина FAQ Хостинг Можно ли изменить корневую папку сайта с www на другую?

Есть два способа задать корневую папку сайта.

Первый способ.

Задать корневую папку сайта можно через Настройка сайта-Основные настройки-Домашняя директория

Второй способ.

Если Вам нужно разместить свой сайт не в корневой папке www, а например в папке www/ru/, то Вам необходимо создать файл index.php со следующим содержимым:

<?php
require_once("ru/index.php");
?>
где "ru/index.php" это путь к исполнительному файлу вашего сайта. Созданный Вами файл, положите в корень папки www и выставьте на него права 750.
Так же нужно обязательно выставить в настройках php ваших сайтов параметр open_basedir на уровень выше для доступа к другим папкам сайта.
 
3. В некоторых фраемворках требуется, чтобы основная папка сайта, где лежит индексный файл, была отличная от www. К примеру, Zend Framework - здесь требуется явное указание основной директории сайта public. Обойти это можно, создав в корне сайта (в папке www) файл .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]

 

Для Symfony2 framework такая схема почему то не подходит. Работает только главная страница, а остальные - нет. В Symfony вместо папки public используется папка web. Пробовал прописывать следующие правила:

DirectoryIndex /web/index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.+) $1 [L]
RewriteCond %{DOCUMENT_ROOT}/web%{REQUEST_URI} -f
RewriteRule ^(.+) /web/$1 [L]
Написал bocharsky.bw 04.01.2014 в 13:10 Ответить
Имя:
E-mail:

Обновить картинку
Ваш комментарий будет добавлен после проверки администратором
также вместо index.php должен быть app.php, т.е.

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

но все равно работает только главная
Написал bocharsky.bw 04.01.2014 в 13:14 Ответить
Имя:
E-mail:

Обновить картинку
Ваш комментарий будет добавлен после проверки администратором
Для того чтобы в Symfony 2 убрать поддиректорию web в адресе, нужно в корневом htaccess прописать следующий код:

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

Options +SymLinksIfOwnerMatch
RewriteRule ^(.*)$ /web/ [QSA,L]
Написал bocharsky.bw 04.01.2014 в 13:57 Ответить
Имя:
E-mail:

Обновить картинку
Ваш комментарий будет добавлен после проверки администратором
Пытаюсь использовать
DirectoryIndex /web/app.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.+) $1 [L]
RewriteCond %{DOCUMENT_ROOT}/web%{REQUEST_URI} -f
RewriteRule ^(.+) /web/$1 [L]
для движка Yii. Такая же проблема, что работает только главная страница.

Этот код

Options +SymLinksIfOwnerMatch
RewriteRule ^(.*)$ /web/ [QSA,L]
выдает ошибку сервера.
Написал bostonleek 17.09.2014 в 14:05 Ответить
Имя:
E-mail:

Обновить картинку
Ваш комментарий будет добавлен после проверки администратором
У меня так и не получилось решить проблему, потому пришлось содержимое папки public разместить в одном каталоге с ядром.
В службе поддержки написали: "Есть только вариант что сайт будет работать с папки /domain.com/www/public/ как и Вы его настроили, по другому корневую папку сменить не возможно"
Но если кто нибудь, все таки найдет решение, буду благодарен.
Написал shybkoartem 16.10.2014 в 19:50 Ответить
Имя:
E-mail:

Обновить картинку
Ваш комментарий будет добавлен после проверки администратором
А если использовать symlink на нужную папку? И открыть доступ PHP ко всем папам уровнем ниже?
Написал Илья 21.10.2014 в 20:18 Ответить
Имя:
E-mail:

Обновить картинку
Ваш комментарий будет добавлен после проверки администратором
Для тих хто хоче поставити Laravel 5. На даний момент є таке рішення:
1. В корінному каталозі створити .htaccess з таким вмістом
RewriteEngine On
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^ public/index.php [L]

2. Далі в htaccess файлі, що знаходиться в папці public закоментувати Options -MultiViews

В мене працює
Написал balex70 09.12.2014 в 18:07 Ответить
Имя:
E-mail:

Обновить картинку
Ваш комментарий будет добавлен после проверки администратором
Для Laravel 5. В www .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
Фреймворк так же кидал в www.
В .htaccess public убрал Options -MultiViews.
Написал wolf40000 25.02.2015 в 13:44 Ответить
Имя:
E-mail:

Обновить картинку
Ваш комментарий будет добавлен после проверки администратором
Ага работает без Options -MultiViews
Написал grand.glory 18.09.2015 в 17:47 Ответить
Имя:
E-mail:

Обновить картинку
Ваш комментарий будет добавлен после проверки администратором
Для тех кто не может настроить Framework Symfony2:
1. В папке www создаем .htaccess и пишем в него:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/web/.*$
RewriteRule ^(.*)$ /web/$1 [QSA,L]

2: В папке web находим .htaccess(который поставляется с symfony2) и комментируем строчку
Options -MultiViews
3. После этого всё должно работать нормально.
Написал lyashenkonik 03.04.2015 в 09:37 Ответить
Имя:
E-mail:

Обновить картинку
Ваш комментарий будет добавлен после проверки администратором
https://github.com/ilopX/yii2-basic-htaccess
Для коханців з Yii2. І куріть бамбук
Написал kirill.holodyuk 14.04.2016 в 23:47 Ответить
Имя:
E-mail:

Обновить картинку
Ваш комментарий будет добавлен после проверки администратором
Для Zend Framework 2 мне помог такой вариант:

RewriteEngine on
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]
Написал devphp 18.11.2016 в 22:55 Ответить
Имя:
E-mail:

Обновить картинку
Ваш комментарий будет добавлен после проверки администратором

Добавить комментарий
Хотите ответить на существующий комментарий - воспользуйтесь кнопкой Ответить под комментарием на который даёте ответ.
Имя:
E-mail:

Обновить картинку
Ваш комментарий будет добавлен после проверки администратором.
Внимание! Чтобы ответить на существующий комментарий, пожалуйста, нажмите на кнопку Ответить, которая находится под соответствующим комментарием.

Другие полезные статьи:

Горячая линия
(044)
392 74 33
другие города