Я пытаюсь перенаправить определенный URL, например:
http://www.domain.com/cadena-de-metas
Я делаю это через свой файл конфигурации в / sites-available /
if ( $request_filename ~ cadena-de-metas/ ) {
rewrite ^ https://some-other-url.com? permanent;
}
Это работает, но, к сожалению, перенаправляет и этот URL:
http://www.domain.com/uploads/descarga-cadena-de-metas.jpg
Как я могу предотвратить это?
Избегайте использования операторов if, они не очень хороши для производительности. Попробуйте что-то вроде этого: ~ * означает совпадение регулярных выражений без учета регистра, а регулярные выражения могут быть просто литералами. Если это не сработает, дайте мне знать, потребуется небольшая настройка - не уверен, нужны ли вам речевые знаки
server {
server_name example.com www.example.com;
location ~* "^/cadena-de-metas" {
return 301 https://some-other-url.com;
}
}
Ваш возврат может быть альтернативным, если вы хотите, чтобы он автоматически настраивался на http / https
return 301 $scheme://some-other-url.com;
Если если вы хотите перенаправить в другое место на том же сервере, это будет примерно так
return 301 $scheme://$host/subdirectory;
NB : Проведите все тесты с перенаправлениями 302, поскольку они не кэшируются, и измените перенаправления на 301, когда будете довольны с тем, как все настроено.
Вы выполняете типовые перенаправления с не-www на www домена по-разному, но вы не спрашивали, поэтому я не буду публиковать это.
А также перенаправляете вас может выполнить proxy_pass, который будет извлекать контент из другого места и отображать его по этому URL-адресу.