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

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

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

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

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

move site subdirectory

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

move site subdirectory

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

move site subdirectory

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

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

move site subdirectory

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/.

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

move site subdirectory

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

move site subdirectory

move site subdirectory

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

move site subdirectory

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

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

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

move site subdirectory

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

move site subdirectory

Заключение

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

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

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

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