Редирект nginx с определенной страницы на главную
rewrite /article/name.html http://site,ru permanent;
Редирект с определенных адресов или сетей (ответ нужным кодом):
Необходим модуль гео
apt install libnginx-mod-http-geoip
nginx.conf:
geo $bad_user {
default 0;
192.168.0.1 1;
192.223.0.0/16 1;
192.168.2.4 1;
}
server {
if ($bad_user) {
return 404;
}
}
1. 301 редирект с одной страницы на другую
Самый простой вариант
1 |
Redirect 301 /test-1/ http://site. |
Дата: 24 января 2019 г. в 20:09:20
Автор: igel
apache 2.4 — Попытка перенаправления с косой чертой и без косой черты
спросил
Изменено 4 года, 3 месяца назад
Просмотрено 9к раз
Я переместил блог на поддомен, а на поддомене все категории изменились, поэтому я хочу сделать список из 301 редиректа со старого домена на поддомен (другой хостинг). 9(.*)$ http://domain.com/blog/$1/ [L,R=301] Редирект 301 /блог/тест/ https://new.domain.com/test/ Перенаправление 301 /blog/example/ https://new.domain.com/example/ (так далее…)
Это не работает, так как браузер обнаруживает слишком много перенаправлений.
(.*)$ http://example.com/$1/ [L,R=301] выполняет перенаправление 301 на URL-адрес с косой чертой, добавленной для нас. Вы должны заменить domain.com своим URL-адресом.
2
Похоже, работает синтаксис:
RedirectMatch 301 /blog/test/?$ https://new.domain.com/test/
1
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie
.
url — Nginx вызывает 301 перенаправление, если нет завершающей косой черты
спросил
Изменено 2 года, 1 месяц назад
Просмотрено 63к раз
Я запускаю nginx на виртуальной машине с использованием NAT, и у меня возникают проблемы с перенаправлением при доступе к нему с хост-машины.
Работает как положено
-
http://localhost:8080/test/index.htm: работает. -
http://localhost:8080/test/: работает.
Не работает должным образом
-
http://localhost:8080/test 9/])$ $1/ постоянный; корень /usr/share/nginx/html; try_files $uri = 404; #fastcgi_pass 127.сервера
0.0.1:9000;
fastcgi_pass unix:/tmp/php5-fpm.sock;
fastcgi_index index.php;
включить fastcgi_params;
}
error_page 500 502 503 504 /50x.html;
местоположение = /50x.html {
корень /usr/share/nginx/html;
}
} - url
- перенаправление
- nginx
Я опубликовал возможное решение этой проблемы на serverfault; воспроизведено здесь для удобства:
Если я правильно понял вопрос, вы хотите автоматически обслуживать, без использования перенаправления 301, http://example.com/foo/index.html, когда запрос на http://example.com/foo без косая черта в конце?
Основное решение, которое мне подходит
Если это так, я обнаружил, что эта конфигурация try_files работает:
try_files $uri $uri/index.html $uri/=404;
- Первый
$uriточно соответствует uri - Второй
$uri/index.htmlсоответствует каталогу, содержащему index.
html, где последний элемент пути соответствует каталогу.
имя без косой черты - Третий
$uri/соответствует каталогу - Четвертый
=404возвращает страницу ошибки 404, если ни один из предыдущих шаблонов не совпадает.
Взято из ответа Serverfault
Моя обновленная версия
Если добавить в блок
:индекс index.html index.htm;
И измените
try_files, чтобы он выглядел следующим образом:try_files $uri $uri/ =404;
Тоже должно работать.
8
Несколько более простое решение, которое сработало для меня, — отключить абсолютные перенаправления с помощью
absolute_redirect off;, как в следующем примере:сервер { слушать 80; имя_сервера локальный хост; абсолютная_переадресация выключена; местоположение /foo/ { прокси_пасс http://бар/; }Если я запускаю curl на
http://localhost:8080/foo, я вижу, что заголовокLocationв HTTP-ответе перенаправления задается как/foo/, а неhttp://localhost /foo/.


(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
0.0.1:9000;
fastcgi_pass unix:/tmp/php5-fpm.sock;
fastcgi_index index.php;
включить fastcgi_params;
}
error_page 500 502 503 504 /50x.html;
местоположение = /50x.html {
корень /usr/share/nginx/html;
}
}
html, где последний элемент пути соответствует каталогу.
имя без косой черты