Начало > Помощен център > Споделен Хостинг Linux > Уебсайт > Преместване на сайт в поддиректория

Преместване на сайт в поддиректория

Помощен център

Преместване на сайт в поддиректория

В тази статия ще ви покажем как може да преместите сайта си в поддиректория и той да продължи да работи нормално без да добавяте името на поддиректорията в URL адресите на страниците.

В примера сайта работи с URL http://bs4.com/ и файловете са качени в директория /bs4.com/:

Структура на файловете в директорията на сайта

Преместваме файловете в поддиректория /bs4.com/web/:

Преместване на файлове в поддиректория

и сайта продължава да работи коректно със същия URL http://bs4.com/ без да се налага да добавяме името на поддиректорията към адреса - т.е. http://bs4.com/web/:

Зареждане на сайта от поддиректория в браузър

Как е възможно това?

Просто в конфигурационната директория на домейна /bs4.com/ поставихме .htaccess файл, чиито код пренасочва заявките към домейна към поддиректория /web/:

htaccess файл в основната директория на сайта

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^bs4\.com [OR]
RewriteCond %{HTTP_HOST} ^www\.bs4\.com
RewriteCond %{REQUEST_URI} !/web
RewriteRule ^(.*)$ /web/$1 [L]

По същия начин може да промените директорията на главния домейн на хостинга, който е конфигуриран по подразбиране да зарежда сайта в директория public_html. Просто създавате .htaccess файл в public_html и пренасочвате заявките към главния домейн (в примера bs4.com) към произволна поддиректория (в примера /web/). Разбира се, вие трябва да замените настройките в примера с ваши коректни настройки.

В горния пример използвахме статичен HTML сайт.

Нека премахнем изцяло статичния сайт и в същата директория /bs4.com/ да инсталираме WordPress, който да се зарежда на адрес http://bs4.com/.

След инсталацията сайта работи нормално:

Зареждане на WordPress сайт в браузър

Преместваме всички файлове в поддиректория /bs4.com/web/ и в директория /bs4.com/ създаваме .htaccess файл със съдържанието от предишния пример:

Преместване файловете на WordPress в поддиректория

Създаване на htaccess файл в главната директория на WordPress сайта

За да сме сигурни, че няма кеширане зареждаме WordPress сайта през друг браузер и създаваме нова статия Test Post:

Зареждане на нова публикация

В WordPress променяме настройките на permalinks (Settings > Permalinks) като избираме опцията Post name, запазваме промените и рефрешваме браузера.

Страницата не би трябвало да работи, тъй като за коректната работа на permalinks трябва да има .htaccess файл в директорията на WordPress , а такъв файл в нашата инсталация нямаше както може да се уверите от горното изображение.

И все пак страницата работи и то с пренаписване на URL адреса и използване slug (test-post) името на статията :

Зареждане на публикация с пренаписване на URL адреса

Отваряме директорията на WordPress и забелязваме, че WordPress автоматично е създал нужния .htaccess файл при натискане на бутона Save Changes:

Автоматично създаден htaccess файл

Заключение

С помощта на .htaccess пренасочване е напълно възможно преконфигурирането на статични HTML сайтове. От този тип са сайтовете изградени на базата на HTML/CSS/JS frameworks като Bootstrap, Foundation, Skeleton, Boilerplate и др.

В примера с базовата инсталация на WordPress сайта също работеше коректно.

Нека обаче добавим, че за работата на един съвременен сайт се използват много или поне няколко допълнителни плъгини, много от които създават собствени записи в .htaccess файла на WordPress и това може да доведе до усложнения и проблеми на по-късен етап.

Затова препоръчаме при работа с динамични CMS системи максимално да следвате инструкциите на разработчиците за да си спестите загубата на нерви, време, вероятно и на финанси.