Вопрос

Я рыскал по сети и так далее, и я не могу обойти эту проблему.

У нас есть куча поддоменов и несколько выделенных серверов.Один сервер выполняет двойную-тройную функцию отслеживания проблем и целевой страницы.Проблема в том, что целевая страница с подстановочными знаками иногда не приводит вас на нужную страницу виртуального хостинга.Я рассматривал подстановочные знаки, но они кажутся особенно широкими.

Наш сценарий заключается в следующем:

-www.askia.com является основной посадочной площадкой.Несуществующий поддомен (подстановочный знак) всегда должен располагаться здесь.
-dev.askia.com является сайтом технической поддержки и проблем.В нем есть некоторые mod_rewrites для https.Это заняло у меня некоторое время, но я заставил его работать, и я бы предпочел не ломать его.
-www.askia.fr это наш французский сайт.Вместо того, чтобы отвезти тебя в www.askia.com это приведет вас к dev.askia.com .
-www.askia.co.uk должен отвести вас к www.askia.com но это относится к dev.askia.com

Я не совсем уверен, где мне следует пытаться исправить решение.Должен ли я что-то сделать в CNAME.В конфигурационном файле virtualhosts или в файле mod_rewrite.

Это было полезно?

Решение

Попробуйте эти правила:

RewriteCond %{HTTP_HOST} ^dev\.
RewriteCond %{HTTP_HOST} !^dev\.askia\.com$
RewriteRule ^ http://dev.askia.com%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTP_HOST} !^www\.askia\.com$
RewriteCond %{HTTP_HOST} !^dev\.askia\.com$
RewriteRule ^ http://www.askia.com%{REQUEST_URI} [L,R=301]

Первое правило перенаправляет каждый запрос на хост, начинающийся с dev. но не dev.askia.com Для www.askia.com.И второе правило перенаправляет запросы на хост, отличный от www.askia.com и dev.askia.com Для www.askia.com.Таким образом, каждый запрос должен либо направляться в dev.askia.com или www.askia.com.

Другие советы

При использовании виртуальных хостов в Apache первый из перечисленных хостингов всегда будет использоваться по умолчанию для несоответствий.

#default vhost
# any non-matches will land here

<VirtualHost  _default_:80>
ServerName www.askia.com:80
DocumentRoot /path/to/site

ErrorLog /path/ti/sites/logs/error_log

</VirtualHost>


# vhost #2 

<VirtualHost  _dev_Site_:443>
ServerName dev.askia.com:443
DocumentRoot /path/to/dev/site

ErrorLog /path/to/dev/sites/logs/error_log

#ssl details
SSLEngine on
SSLCipherSuite HIGH:MEDIUM
SSLCertificateFile /location/securti.crt
SSLCertificateKeyFile /location/securti.key


#any rewrite rules to apply only to this (default) domain
# force SSL for instance..
RewriteRule .* - [F]
RewriteCond   %{SERVER_PORT}  !^443$
RewriteRule (.*) https://dev.askia.com/
</VirtualHost>

#etc, etc
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top