У меня есть веб-сайт (например, test.com), который имеет 2 вида поддоменов:
- test.com
- Статическая _ $ {версия} .test.com
Первый - это основной поддомен, а второй - только для статических файлов (js / css / image). ${version}
- это номер версии, он изменяется при появлении новой версии файлов js / css / images, он мне нужен, потому что клиент может кэшировать старые.
Теперь я использую nginx, но я не настраиваю его для поддоменов, просто переписываю все поддомены в основной test.com
домен.
Это работает, но однажды я нашел поисковую систему, использую static.test.com
в качестве основного домена для посещения моего сайта.
Как мне настроить nginx, чтобы static.test.com
мог посещать только статические файлы, в то время как основной домен может посещать все?
UPDATE
Я надеюсь, что запрос static.test.com
с js / css / images будет перезаписан в test.com
, а не в статический файл на диске. И другие запросы (не js / css / images) будут возвращать 404
напрямую.
Спасибо за Ответ Тимофея Столбова , я сейчас пишу конфиг:
server {
listen 80;
server_name ~^static_(.*)\.test\.com$;
set $version $1;
rewrite ^/public/(.*) http://test.com/public/$1?v=$version last;
return 404;
}
Поскольку все мои файлы js / css / images находятся в каталоге "public", поэтому я просто проверяю, начинается ли он с "public". Если нет, просто верните 404.
Но я не знаю, правильно ли это, особенно return 404
, или есть ли лучший способ сделать это.