Объединить WordPress и Laravel

Часто возникает такая ситуация, когда необходимо объединить CMS WordPress и Laravel сайт. Ситуации возникают различные, однако я перечислю некоторые, которые возникали лично у нашей команды:

  1. Для старого WordPress сайта необходимо разработать отдельный личный кабинет на Laravel
  2. Для нового Laravel сайта нужно внедрить блог на WordPress, чтобы "не заморачиваться"

Решение у подобных ситуаций может быть множество. У разработчика всегда встает вопрос, что выбрать и как реализовать.

Личный кабинет на Laravel для WordPress сайта

Рассмотрим первый случай, поскольку я увеен, что он возникает чаще.

Во-первых, нужно помнить, что если сайт на WordPress достаточно старый и авторитетный, то вряд-ли владелец сайта пожелает потерять позиции в поисковых системах. Поэтому, чтобы сохранить старые URL адреса и не трогать по факту старый сайт, логичным решением будет вынести Laravel на отдельный субдомен, например на cabinet.site.ru.

Таким образом, старый сайт сохранит свой трафик и функционал, и для кабинета будет красивый URL адрес. Если на Laravel сайте понадобится работать с базой данных WordPress сайта, то для этого можно создать второе подключение к БД по инструкции.

Если же необходимо внедрить laravel в URL адрес сайта, например site.ru/cabinet/, то для этого достаточно разместить Laravel на том-же сервере и скоректировать конфиг Apache. При этом все HTTP запросы из адреса site.ru/cabinet/ следует в конфиге направить на папку public в проекте Laravel.

На мой взгляд, верным решением будет разместить новый личный кабинет на субдомене. Это проще в конфигурации и основной сайт не потребует изменений.

WordPress блог для сайта на Laravel

Если нужен WordPress блог для сайта на Laravel, то самым простым решением будет разместить блог в отдельной папке на сервере. Папка должна лежать рядом с папкой Laravel проекта. При этом, следует создать symlink из папки public Laravel проекта на папку с блогом. В таком случае все запросы к сайту site.ru/blog/ будут переадресовываться на папку с WordPress блогом, и все будет орректно работать.

Также эффективным решением будет разместить блог на отдельном субдомене. Для этого достаточно прописать A записи в DNS-серверах домена на нужный хостинг или сервер, где будет лежать WordPress блог.