Преместване на сайт в поддиректория
В тази статия ще ви покажем как може да преместите сайта си в поддиректория и той да продължи да работи нормално без да добавяте името на поддиректорията в URL адресите на страниците.
В примера сайта работи с URL http://bs4.com/
и файловете са качени в директория /bs4.com/
:
Преместваме файловете в поддиректория /bs4.com/web/
:
и сайта продължава да работи коректно със същия URL http://bs4.com/
без да се налага да добавяме името на поддиректорията към адреса - т.е. http://bs4.com/web/
:
Как е възможно това?
Просто в конфигурационната директория на домейна /bs4.com/
поставихме .htaccess
файл, чиито код пренасочва заявките към домейна към поддиректория /web/
:
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/
.
След инсталацията сайта работи нормално:
Преместваме всички файлове в поддиректория /bs4.com/web/
и в директория /bs4.com/
създаваме .htaccess
файл със съдържанието от предишния пример:
За да сме сигурни, че няма кеширане зареждаме WordPress сайта през друг браузер и създаваме нова статия Test Post:
В WordPress променяме настройките на permalinks (Settings > Permalinks) като избираме опцията Post name, запазваме промените и рефрешваме браузера.
Страницата не би трябвало да работи, тъй като за коректната работа на permalinks
трябва да има .htaccess
файл в директорията на WordPress , а такъв файл в нашата инсталация нямаше както може да се уверите от горното изображение.
И все пак страницата работи и то с пренаписване на URL адреса и използване slug (test-post) името на статията :
Отваряме директорията на WordPress и забелязваме, че WordPress автоматично е създал нужния .htaccess
файл при натискане на бутона Save Changes:
Заключение
С помощта на .htaccess
пренасочване е напълно възможно преконфигурирането на статични HTML сайтове. От този тип са сайтовете изградени на базата на HTML/CSS/JS frameworks като Bootstrap, Foundation, Skeleton, Boilerplate и др.
В примера с базовата инсталация на WordPress сайта също работеше коректно.
Нека обаче добавим, че за работата на един съвременен сайт се използват много или поне няколко допълнителни плъгини, много от които създават собствени записи в .htaccess
файла на WordPress и това може да доведе до усложнения и проблеми на по-късен етап.
Затова препоръчаме при работа с динамични CMS системи максимално да следвате инструкциите на разработчиците за да си спестите загубата на нерви, време, вероятно и на финанси.