Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > Автоматические субдомена


Автор: swordfishik 31.7.2015, 14:51
Всем привет. Перелопатил кучу мануалов, пообщался с техподдержкой, в итоге имею некоторое представление, но все же нужна ваша помощь в доведении кода .htaccess до ума.

Размещаюсь на виртуальном сервере - http://freehost.com.ua/. Вот что они пишут для автоматических субдоменов - http://freehost.com.ua/faq/faq/kak-aktivirovat-optsiyu-neogranichennoe-kolichestvo-subdomenov/. Т.е. все папки в корне главного домена становятся субдоменами - бред! Техподдержка подсказала, что можно в корне создать папку subdomains и в ней уже добавлять подпапки, они и будут субдоменами. Вариант тот что нужен, вот их исправленный вариант кода .htaccess.

Код
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} !^$
RewriteRule .* - [L]

RewriteCond %{HTTP_HOST} !^www\.example\.com$
RewriteCond %{HTTP_HOST} ^([^.]*)\.example\.com$
RewriteCond %{REQUEST_URI} !^/subdomains
RewriteRule ^(.*)$ /subdomains/%1/$1 [QSA,L]

Покажу теперь мой .htaccess лежащий в корне главного домена.

Код
#Устанавливаем кодировку сайта
AddDefaultCharset utf-8

#Переадресации при разных ошибках
ErrorDocument 403 http://example.com/
ErrorDocument 404 http://example.com/

#Скрываем содержимое папок
Options All -Indexes

#Включаем преобразование ссылок
RewriteEngine on

#Склеиваем www с основным доменом
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

#Склеиваем index.php с доменом
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ / [R=301,L]

#Принудительная подстановка замыкающего слеша
RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

#Ловим переменные из урл
RewriteRule ^(.*)(\/|\.html)$ index.php?data=$1&last=$2 [L,QSA]

Как теперь корректно объединить 2 куска кода, дабы все работало без ошибок? Может мой код и код техподдержки не совсем корректен, то прошу исправить. Спасибо.

Автор: _zorn_ 31.7.2015, 18:44
Для начала ВАМ нужно понять что делает та или иная директива.
Дальше все проще  smile 

И даже можно без апача. В нгинкс кстати проще.

Автор: swordfishik 1.8.2015, 11:13
Цитата(_zorn_ @ 31.7.2015,  18:44)
Для начала ВАМ нужно понять что делает та или иная директива.
Дальше все проще  smile

кто бы спорил, что проще, но дабы разобратся, нужно потратить довольно много времени, я бы не обращался сюда, будь оно у меня

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)