Автоматические субдомены через .htaccess

AR
На сайте с 19.05.2010
Offline
91
976

Всем привет. Размещаюсь на виртуальном unix хостинге. Возникла потребность в автоматических субдоменах. На хостинге прописал *.example.com. В корне сайта создал папку domains и в ней уже размещаю субдомена www, panel, ... В корне сайта содержится .htaccess со следующим содержимым:

#Устанавливаем кодировку сайта

AddDefaultCharset utf-8

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

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

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

#Склеиваем 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]

RewriteCond %{ENV:REDIRECT_STATUS} !^$
RewriteRule .* - [L]

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

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

Судбомена открываются как по мне нормально, но есть ошибки, хотя не везде.

При открытии ссылки http://www.example.com/ ошибки нет.

При открытии ссылки http://panel.example.com/ ошибка следующая, за 1 открытие ссылки:

[Mon Aug 17 20:02:50 2015] [notice] [client ...] [mod_vhost_ldap.c] translate: virtual host not found, trying wildcard *.example.com
[Mon Aug 17 20:02:50 2015] [notice] [client ...] [mod_vhost_ldap.c] translate: virtual host not found, trying wildcard *.example.com
[Mon Aug 17 20:02:50 2015] [notice] [client ...] [mod_vhost_ldap.c] translate: virtual host not found, trying wildcard *.example.com
[Mon Aug 17 20:02:50 2015] [notice] [client ...] [mod_vhost_ldap.c] translate: virtual host not found, trying wildcard *.example.com

Как исправить ошибки и реализовать следующее?

1. открыв http://www.example.com/ нас переадресует 301 редиректом на http://example.com/
2. открыв http://www.panel.example.com/ нас переадресует 301 редиректом на http://panel.example.com/

Спасибо!

lealhost
На сайте с 07.06.2014
Offline
136
#1

Ну это не ошибки, а нотайсы.

Просто у вашего хостера стоит модуль apache mod_vhost_ldap. В общем, не обращайте внимания - это не ошибки и не на что не влияют для вас :)

AR
На сайте с 19.05.2010
Offline
91
#2
lealhost:
Ну это не ошибки, а нотайсы.
Просто у вашего хостера стоит модуль apache mod_vhost_ldap. В общем, не обращайте внимания - это не ошибки и не на что не влияют для вас :)

спасибо, просто лог засоряется этими нотайсами, не люблю беспорядок 🍿

мне хостер предоставил еще вариант .htaccess, но там все папки в корне сайта станут субдоменами, при этом говорит, что не должно быть ошибок... но это не мой вариант, мне нужно все субдомена поместить в 1 папку и от туда их грузить, что логичней и правильней как по мне.

вот вариант не подходящий мне:

RewriteCond %{HTTP_HOST} !^$

RewriteCond %{HTTP_HOST} !^(www\.)?example\.com$ [NC]
RewriteCond %{HTTP_HOST}---%{REQUEST_URI} ^([^\.]+)\.example\.com---/([^/]+)? [NC]
RewriteCond %1---%2 !^(.*)---\1$ [NC]
RewriteCond %{DOCUMENT_ROOT}/%1/ -d
RewriteRule ^(.*)?$ %1/$1 [QSA,PT]

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий