Как создать динамичный поддомен на Joomla, если сам сайт статичен и избежать при этом дублей? Авторизация joomla на поддомене
Кроссдоменная авторизация на Joomla 3
Или единая авторизация на сайте.Поставлена задача:— имеется два независимых joomla сайта с одной БД, но разными префиксами. Вы заходите на сайт site1.ru и авторизуетесь на нем, потом переходите на другой поддомен этого сайта example.site1.ru, и там вы автоматически являетесь авторизованными.
Получается нам необходимо с главного сайта site1.ru объединить в БД таблицы сессии и юзеров.
Из всех готовых решений, а их раз-два и обчелся нашёл одно рабочее, с использованием платного расширения MightySites (на варезниках можно найти бесплатно или напишите мне в личку). И так рассмотрим его.
1. Заходим в админку поддомена example.site1.ru и устанавливаем расширение MightySites.2. Включаем два установленных плагина:— System — MightySites single login/logout— System — MightySites
3. Заходим в компонент MightySites и видим наш сайт example.site1.ru. Нажимаем кнопку Создать.
4. Вводим название основного сайта site1.ru и переходим к следующей вкладке Database.
5. Подключаем базу site1.ru, вводим Имя БД, Префикс, Пользователя и Пароль (если есть) и нажимаем кнопку Сохранить.
6. Далее переходим во вкладку Single Login/Logout и включаем переключатель Single Login на Да.
В таблице Sites в поле Domain пишем example.site1.ru, а в поле Secret Key пишем соответственно его ключ (его нужно взять из вкладки Advanced сайта example.site1.ru) и нажать Сохранить и закрыть.как?
- Переходим на главную страницу компонента MightySites (можно в новой вкладке), нажимаем на сайт example.site1.ru.
- Переходим во вкладку Advanced копируем Secret Key и вставляем его куда написано выше.
7. Переходим на главную страницу компонента MightySites, нажимаем на сайт example.site1.ru и повторяем пункт 6. касаемо этого сайта. Переключаем переключатель. В поле Sites пишем site1.ru а в Secret Key его ключ. Должно получиться так:
8. Переходимо во вкладку Data Sources, включаем выключатель Data Overload на Включено. Далее, в столбце Database Tables, нажимаем на кнопку *Display Tables*.
После чего выбираем site1.ru в следующих таблицах:#__session#__user_keys#__user_notes#__user_profiles#__user_usergroup_map#__usergroups#__users
Должно получиться так:
9. В обоих сайтах во вкладке Advanced, в поле Cookie Domain пишем .site1.ru.
10. Последний пункт. Заходим в админку двух сайтов и переходим в Общие настройки. Далее, заполняем Настройки Cookie, следующим образом:Cookie домена: .site1.ruПуть для Cookie: /
собственно всё, проверяем. Если всё сложно и не получается настроить, по вашим просьбам могу снять видео, как это всё настроить.
salkstudio.ru
Как создать динамичный поддомен на Joomla, если сам сайт статичен и избежать при этом дублей?
##файл .htaccess для Joomla. Создан на сайте http://max-joomla.ru
##Может быть закомментировано, если вызывает ошибку сервера. Возможность использовать
##символические ссылки на каталоги или файлы, которые не находятся в пределах корня
##вашего сайта. Запрет на листинг каталогов.
Options +FollowSymLinks -Indexes
##
## Кодировка по умолчанию
AddDefaultCharset utf-8
##
## Включение модуля mod_rewrite
<IfModule mod_rewrite.c>
RewriteEngine On
##
##Корневая директория - начало
RewriteBase /
##Корневая директория конец
##Редирект с index.php на / - начало
RewriteCond %{THE_REQUEST} !^POST
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteCond %{SERVER_PORT}>s ^(443>(s)|[0-9]+>s)$
RewriteRule ^index\.php$ http%2://vash-sayt.com/ [R=301,L]
##Редирект с index.php на / - конец
##Редирект с www на без www - начало
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
##Редирект с www на без www - конец
</IfModule>
## Конец модуля mod_rewrite
##Индексная страница
DirectoryIndex index.php
##
## Настройки хостинга - начало
<ifModule mod_php.c>
php_value register_globals 0
php_value safe_mode 0
php_value allow_url_fopen 0
php_value display_errors 0
php_value file_uploads 1
php_value magic_quotes_gpc 1
php_value magic_quotes_runtime 0
php_value upload_max_filesize 20M
php_value post_max_size 10M
php_value max_execution_time 100
php_flag register_globals Off
php_flag display_errors Off
php_flag file_uploads On
php_flag allow_url_fopen off
php_flag magic_quotes_gpc On
php_flag magic_quotes_runtime Off
</ifModule>
## Настройки хостинга - конец
## Правила обработки запросов для блокировки распространенных эксплоитов - начало
RewriteCond %{QUERY_STRING} proc/self/environ [OR]
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
RewriteCond %{QUERY_STRING} base64_(en|de)code\(.*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]
## Правила обработки запросов для блокировки распространенных эксплоитов - конец
##Блокировка прямого доступа к ядру - начало
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} \.php|\.ini|\.xml [NC]
RewriteCond %{REQUEST_URI} \/components\/ [OR]
RewriteCond %{REQUEST_URI} ^\/includes\/|^\/administrator\/includes\/ [OR]
RewriteCond %{REQUEST_URI} \/language\/ [OR]
RewriteCond %{REQUEST_URI} \/libraries\/ [OR]
RewriteCond %{REQUEST_URI} \/modules\/ [OR]
RewriteCond %{REQUEST_URI} \/plugins\/ [OR]
RewriteCond %{REQUEST_URI} \/templates\/ [OR]
RewriteCond %{REQUEST_URI} \/cli\/
RewriteRule ^(.*)$ index.php [R=404,L]
##Блокировка прямого доступа к ядру - конец
##Блокировка MySQL инъекций - начало
RewriteCond %{query_string} concat.*\( [NC,OR]
RewriteCond %{query_string} union.*select.*\( [NC,OR]
RewriteCond %{query_string} union.*all.*select [NC]
RewriteRule ^(.*)$ index.php [F,L]
##Блокировка MySQL инъекций - конец
##Блокировка файловых инъекций - начало
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC]
RewriteRule .* - [F]
##Блокировка файловых инъекций -конец
## Запретит доступа к htaccess.txt, configuration.php и php.ini
RewriteRule ^(htaccess\.txt|configuration\.php-dist|php\.ini)$ - [F]
##
## Раздел SEF ядра Joomla - начало
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|raw|ini|zip|json|file|vcf))$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
##Раздел SEF ядра Joomla - конец
##Ускорение загрузки сайта
##Gzip сжатие с помощью модуля mod_deflate - начало
<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
</ifModule>
##Gzip сжатие с помощью модуля mod_deflate - конец
##Gzip сжатие с помощью модуля mod_gzip - начало
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include mime ^text\.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_include mime ^application/x-font-woff.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>
##Gzip сжатие с помощью модуля mod_gzip - конец
##Кэширование с помощью модуля mod_headers - начало
<ifModule mod_headers.c>
#кэшировать HTML и htm файлы на один день
<FilesMatch "\.(html|htm)$">
Header set Cache-Control "max-age=43200"
</FilesMatch>
#кэшировать CSS, javascript и текстовые файлы на одну неделю
<FilesMatch "\.(js|css|txt)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
#кэшировать Flash и изображения на месяц
<FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
#отключить кэширование
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
Header unset Cache-Control
</FilesMatch>
</IfModule>
##Кэширование с помощью модуля mod_headers - конец
##Кэширование с помощью модуля mod_expires - начало
<ifModule mod_expires.c>
ExpiresActive On
#по умолчанию кеш в 5 секунд
ExpiresDefault "access plus 5 seconds"
#кэшировать Flash и изображения на месяц
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
#кэшировать CSS, javascript и текстовые файлы на одну неделю
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 604800 seconds"
ExpiresByType application/javascript "access plus 604800 seconds"
ExpiresByType application/x-javascript "access plus 604800 seconds"
#кэшировать HTML и htm файлы на один день
ExpiresByType text/html "access plus 43200 seconds"
#кэшировать XML файлы на десять минут
ExpiresByType application/xhtml+xml "access plus 600 seconds"
</ifModule>
##Кэширование с помощью модуля mod_expires - конец
joomla-support.ru
Главная страница сайта - белый экран, в тоже время админка и другие сайты (на поддомене) отображаютс
238
SELECT ms.id AS sid, ms.type AS stype, mc.id AS cid, mc.type AS ctype, i.id as sectionid, i.id As catid, ms.published AS spub, mc.published AS cpub
FROM jos_content AS i
LEFT JOIN jos_sections AS s ON i.sectionid = s.id
LEFT JOIN jos_menu AS ms ON ms.componentid = s.id
LEFT JOIN jos_categories AS c ON i.catid = c.id
LEFT JOIN jos_menu AS mc ON mc.componentid = c.id
WHERE ( ms.type IN ( 'content_section', 'content_blog_section' ) OR mc.type IN ( 'content_blog_category', 'content_category' ) )
AND i.id = 228
ORDER BY ms.type DESC, mc.type DESC, ms.id, mc.id239
SELECT ms.id AS sid, ms.type AS stype, mc.id AS cid, mc.type AS ctype, i.id as sectionid, i.id As catid, ms.published AS spub, mc.published AS cpub
FROM jos_content AS i
LEFT JOIN jos_sections AS s ON i.sectionid = s.id
LEFT JOIN jos_menu AS ms ON ms.componentid = s.id
LEFT JOIN jos_categories AS c ON i.catid = c.id
LEFT JOIN jos_menu AS mc ON mc.componentid = c.id
WHERE ( ms.type IN ( 'content_section', 'content_blog_section' ) OR mc.type IN ( 'content_blog_category', 'content_category' ) )
AND i.id = 212
ORDER BY ms.type DESC, mc.type DESC, ms.id, mc.id240
SELECT ms.id AS sid, ms.type AS stype, mc.id AS cid, mc.type AS ctype, i.id as sectionid, i.id As catid, ms.published AS spub, mc.published AS cpub
FROM jos_content AS i
LEFT JOIN jos_sections AS s ON i.sectionid = s.id
LEFT JOIN jos_menu AS ms ON ms.componentid = s.id
LEFT JOIN jos_categories AS c ON i.catid = c.id
LEFT JOIN jos_menu AS mc ON mc.componentid = c.id
WHERE ( ms.type IN ( 'content_section', 'content_blog_section' ) OR mc.type IN ( 'content_blog_category', 'content_category' ) )
AND i.id = 152
ORDER BY ms.type DESC, mc.type DESC, ms.id, mc.id241
SELECT ms.id AS sid, ms.type AS stype, mc.id AS cid, mc.type AS ctype, i.id as sectionid, i.id As catid, ms.published AS spub, mc.published AS cpub
FROM jos_content AS i
LEFT JOIN jos_sections AS s ON i.sectionid = s.id
LEFT JOIN jos_menu AS ms ON ms.componentid = s.id
LEFT JOIN jos_categories AS c ON i.catid = c.id
LEFT JOIN jos_menu AS mc ON mc.componentid = c.id
WHERE ( ms.type IN ( 'content_section', 'content_blog_section' ) OR mc.type IN ( 'content_blog_category', 'content_category' ) )
AND i.id = 227
ORDER BY ms.type DESC, mc.type DESC, ms.id, mc.id242
SELECT ms.id AS sid, ms.type AS stype, mc.id AS cid, mc.type AS ctype, i.id as sectionid, i.id As catid, ms.published AS spub, mc.published AS cpub
FROM jos_content AS i
LEFT JOIN jos_sections AS s ON i.sectionid = s.id
LEFT JOIN jos_menu AS ms ON ms.componentid = s.id
LEFT JOIN jos_categories AS c ON i.catid = c.id
LEFT JOIN jos_menu AS mc ON mc.componentid = c.id
WHERE ( ms.type IN ( 'content_section', 'content_blog_section' ) OR mc.type IN ( 'content_blog_category', 'content_category' ) )
AND i.id = 220
ORDER BY ms.type DESC, mc.type DESC, ms.id, mc.id243
SELECT ms.id AS sid, ms.type AS stype, mc.id AS cid, mc.type AS ctype, i.id as sectionid, i.id As catid, ms.published AS spub, mc.published AS cpub
FROM jos_content AS i
LEFT JOIN jos_sections AS s ON i.sectionid = s.id
LEFT JOIN jos_menu AS ms ON ms.componentid = s.id
LEFT JOIN jos_categories AS c ON i.catid = c.id
LEFT JOIN jos_menu AS mc ON mc.componentid = c.id
WHERE ( ms.type IN ( 'content_section', 'content_blog_section' ) OR mc.type IN ( 'content_blog_category', 'content_category' ) )
AND i.id = 264
ORDER BY ms.type DESC, mc.type DESC, ms.id, mc.id244
SELECT ms.id AS sid, ms.type AS stype, mc.id AS cid, mc.type AS ctype, i.id as sectionid, i.id As catid, ms.published AS spub, mc.published AS cpub
FROM jos_content AS i
LEFT JOIN jos_sections AS s ON i.sectionid = s.id
LEFT JOIN jos_menu AS ms ON ms.componentid = s.id
LEFT JOIN jos_categories AS c ON i.catid = c.id
LEFT JOIN jos_menu AS mc ON mc.componentid = c.id
WHERE ( ms.type IN ( 'content_section', 'content_blog_section' ) OR mc.type IN ( 'content_blog_category', 'content_category' ) )
AND i.id = 263
joomla-support.ru
Есть сайт, необходимо сделать второй в поддомене
Ответ: Есть сайт, необходимо сделать второй в поддоменеЗдравствуйте. Я перерыл весь интернет для решения похожей проблемы: сделать в поддомене отдельный сайт, но чтобы управление было от одной инсталяции Джумлы. Нашел решение, но проблема в том, что не понял его. Может, кто расшифрует, куда вставлять эти коды. В программировании я ноль
Вот решение (отсюда: http://forum.joom.ru/index.php?topic=3048.0)
Re: Поддомен на сайте « Ответ #3 : 29.06.2006, 17:54:01 »
Нее.. Подмигивающий Не надо ковырять код. Все решается стандартными юниксовыми средствами. Средствами Вантуза тоже решается, но сложнее... Итак: Допустим, основной домен здесь: /path/main_domain /path/another_domain поддомен здесь Допустим, шаблон основного сайта - templ1, а для дополнительного - templ2. Поехали: ---------------------------------------------------- Вместо полного копирования сайта, создать символические ссылки и получить сайт 1 в 1 как в основном домене. Код:
ln -s /path/main_domain/* /path/another_domain/
Удалить конфиг (символическую ссылку) в поддомене, скопировать конфиг в поддомен. Код:
rm /path/another_domain/configuration.php cp /path/main_domain/configuration.php /path/another_domain/
Отредактировать соответствующим образом переменные "$mosConfig_absolute_path" и "$mosConfig_live_site" Код:
vi /path/another_domain/configuration.php
Удалить каталог (символическую ссылку) с шаблонами в поддомене и создать реальный каталог. Код:
rm -f -d -r /path/another_domain/templates mkdir /path/another_domain/templates
Создать символическую ссылку на templ2 с именем templ1 Код:
ls -s /path/main_domain/templates/templ2 /path/another_domain/templates/templ1
Либо скопировать templ2 с именем templ1 в дополнительный сайт: Код:
cp -r /path/main_domain/templates/templ2 /path/another_domain/templates/templ1
---------------------------------------------------- В итоге: Обращась к поддомену, мы, по сути, обращаемся к основному домену и используем основной шаблон, вместо которого "подсовываем" другой.
Другое меню, в свежесозданном поддомене с другим дизайном: - создайте новый раздел - создайте нужное меню - "свяжите" новый раздел с новым меню. - в каталоге нового сайта в .htacess пропишите редирект первой страницы на первую страницу нового раздела (ищите в интернете сами, как это делается(я на вскидку не скажу...)).
Вот и получился новый сайт с новым дизайном и новым меню. Дальше всплывут еще косяки, но все так или иначе решаемо.
joomla-support.ru