Мне нравится обрабатывать разные поддомены на моем сервере Nginx, это мой файл конфигурации (частично)
server {
listen 80 default_server;
listen 443 default_server ssl;
include ssl/mysite.conf;
server_name default_server;
rewrite ^(.*)$ https://mysite.com$1 permanent;
Как видите, все запросы к sub-domain.mysite.com/query являются перенаправлен к mysite.com/query всегда в https. Я хотел бы выполнить эту перезапись только в том случае, если субдомен отличается от строка1 и строка2. Так:
string1.mysite.com/query ---> https://string1.mysite.com/query
foo.mysite.com/query ---> https://mysite.com/query
Вы можете указать разные серверные блоки для разных имен хостов, например, AD7six.
В вашем случае я бы написал 2 серверных блока, один для string1.mysite.com и string2.mysite.com, а другой без фильтра server_name для соответствия всем остальным запросам.
Что-то вроде этого:
server {
listen 80 default_server;
listen 443 default_server ssl;
include ssl/mysite.conf;
rewrite ^(.*)$ https://mysite.com$1 permanent;
...
}
server {
listen 80;
listen 443 ssl;
include ssl/mysite.conf;
server_name string1.mysite.com string2.mysite.com;
...
}
Документация директивы server_name очень хороша и может помочь вам с такого рода проблемами. http://nginx.org/en/docs/http/server_names.html