Мне нужно указать субдомены, например es.domain.com
к /public/www/index.php
Проблема в том, что мой хост НЕ предоставляет мне возможность установить путь, я могу только настроить поддомены для «локального использования», что создает папки в public
каталог
Моя структура
/public/
/public/de/
/public/es/
/public/it/
/public/www/index.php
Мой хост сказал мне использовать файлы .htaccess внутри папок поддомена.
Я пробовал например в /public/es/
что-то вроде
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(de|es|it)\.mydomain\.com$
# Create an environment variable to remember the language:
RewriteRule (.*) - [QSA,E=LANGUAGE:%1]
# Now check if the LANGUAGE is empty (= doesn't exist)
RewriteCond %{ENV:LANGUAGE} !^$
# If so, create the default language (=es):
RewriteRule (.*) - [QSA,E=LANGUAGE:es]
# Change the root folder of the spanish language:
RewriteCond %{ENV:LANGUAGE} ^es$
# Change the root folder:
RewriteRule ^/?$ /public/www/index.php
</IfModule>
Но я получаю 404 по этому поводу:
Запрошенный URL /public/www/index.php не найден на этом сервере.
В моем списке DNS я вижу, что
es.domain.com
CNAME onlinux-it.setupdns.net
пока www.domain.com
CNAME domain.com
Я пробовал также назначить
es.domain.com
CNAME в domain.com
но это ничего не изменило.
Вы написали:
В моем списке DNS я вижу, что
es.domain.com
CNAMEonlinux-it.setupdns.net
покаwww.domain.com
CNAMEdomain.com
Возможно, проблема в вашей конфигурации DNS.
Моя собственная конфигурация DNS выглядит примерно так:
$TTL 86400
@ IN SOA dnsxx.ovh.net. tech.ovh.net. (2011111300 86400 3600 3600000 86400)
IN NS dnsxx.ovh.net.
IN NS nsxx.ovh.net.
IN A 123.123.123.123
* IN CNAME papdevis.fr.
Это означает "если вы напечатаете papdevis.fr
или что-то позади www.papdevis.fr
или olivier.papdevis.fr
зайти на сервер по адресу 123.123.123.123
.
Если я изменю адрес 123.123.123.123
к новому например 234.234.234.234
, это будет работать, и как только вы наберете papdevis.fr
или любой другой материал (как объяснялось ранее), он перейдет в 234.234.234.234
. Все будет работать плавно, не трогая ни одной .htaccess
файл.
Поэтому попробуйте применить ту же конфигурацию DNS на своем сайте.
Лучшим способом было бы изменить DocumentRoot
в ваших файлах конфигурации Apache для этих sobdomains, чтобы все они указывали на /public/www/
но я думаю, ты не можешь этого сделать.
Я не думаю, что есть способ сделать то, о чем вы просите, с помощью .htaccess
файл.
Вы можете создать символическую ссылку вместо папки, чтобы:
/public/de/ -> /public/www/
Вы можете это сделать?