MaxSite МногоСайт?

Вторник, 21 апреля 2009 г.
Рубрика: Сайтостроительство
Метки: | | |
Подписаться на комментарии по RSS

Здравствуйте друзья!

Недавно у меня родилось множество идей по созданию качественных сайтов. Причём все как-то разом, не к месту и не ко времени...  Однако родились и теперь терзают неокрепший ум:) К делу - мы ж все люди ленивые, а я, наверное, самый ленивый из всех... Чтобы не следить за обновлениями системы управления сайтами, обновлять не несколько систем, а  один раз, решил написать расширение для моей любимой системы. Для MaxSite. Тут возникают закономерные вопросы: не проще ли взять многопользовательский вордпресс или тот же би2, альтернатив множество... Однако, мне кажется, что за системой Макса будущее, при всех её недоработках, да и патриотизм сыграл некоторую роль.

Итак, была идея сделать действительно сервис блогов, но это трудно для меня... и пока я решил попробовать избавиться хотя-бы от проблемы обновления десятка одинаковых систем, вариант этого я вам и предоставляю:

Для начала нам нужно добиться использования одной базы данных. Экономика должна быть экономной! Для этого мы внесём некоторые поправки в файл /application/config/database.php:

  • $pref=$_SERVER["HTTP_HOST"];
  • $pref=str_replace("www.","",$pref);
  • $pref=str_replace(".","",$pref);
  • $pref=str_replace("-","",$pref);
  • $db['default']['dbprefix']=$pref."_";
Здесь мы формируем префикс в базе данных и он будет отличаться для каждого домена. В принципе этого достаточно, однако стоит воспользоваться ещё одним кодом, а именно редиректом через .htaccess на адрес без www. В принципе не обязательно, но лучше создать в корневой папке файл .htaccess и внести в него такие строки:
  • RewriteRule ^(.*)$ - [E=PROTOCOL:http]
  • RewriteCond %{HTTPS} ^on$ [NC]
  • RewriteRule ^(.*)$ - [E=PROTOCOL:https]
  • RewriteCond %{SERVER_PORT} ^80$
  • RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
  • RewriteRule ^(.*)$ %{ENV:PROTOCOL}://%1%{REQUEST_URI} [R=301,L]
  • RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
  • RewriteRule ^(.*)$ %{ENV:PROTOCOL}://%1:%{SERVER_PORT}%{REQUEST_URI} [R=301,L]
Говорю честно: код упёрт с одного из форумов, причём достаточно давно. Его преимущество в отличие от обычного редиректа в том, что он универсален - смело кидайте в корень и для всех сайтов он будет работать.

В принципе эти два пункта у себя я реализовал, сейчас будет работа по созданию robots.txt, оригинального для каждого сайта, а также xml-sitemap, карты сайта. Без этих пунктов о многосайтовости и говорить не стоит:) А об этом я напишу только тогда, когда сделаю сам и оно корректно заработает, хотя наброски у меня уже есть;-)

Первый Постовой:

Стоит почитать блог Антона

Оставьте комментарий!

Используйте нормальные имена.

(обязательно)

Поиск

Статистика

Rambler's Top100