Всем привет!
Многие постоянно задаются вопросом, как быстро и эффективно сделать редирект с одного домена на другой сохранив ссылку.
Есть вариант через специальный index.php файл.
Но зачем усложнять?
Средствами веб-сервера это можно сделать точно также.
Вот пример для Caddy:
r.example.com {
encode gzip
# Если передан ?url= → редирект
@has_url expression `{query.url} != ""`
handle @has_url {
redir {query.url} 302
}
# Если параметр не передан → сообщение об ошибке
handle {
respond "URL не передан." 400
}
}
Юрл будет вида: https://r.example.com/?url=https://new-url.example.com
И автоматически будет редиректить по целевому пути.
Полезно, если исправляете редирект странц подписок отркрываемых в веб-аппе для добавления на устрйоство подписки.
Для nginx вариация будет примерно такой:
server {
listen 443 ssl http2;
server_name r.example.com;
# ssl_certificate /path/fullchain.pem;
# ssl_certificate_key /path/privkey.pem;
default_type text/plain;
location / {
if ($arg_url = "") {
return 400 'URL не передан.';
}
return 302 $arg_url;
}
}
И для nginx не забываем добавить путь до сертификатов.