Как ограничить указанный файл на указанном порту в Nginx?
Веб-сервер NginX, мне нужно сделать это:
- при доступе к xxx.php через порт 80 верните 404;
- при доступе к xxx.php из 8555(ssl-соединение) обычным способом.
Я пробовал так:
server
{
listen 80;
location xxx.php {
return 404;
}
location / {
.....
}
}
server
{
listen 8555 default ssl;
location / {
....
}
}
где location /{
Директивы точно такие же. Но, похоже, не работает.
Спасибо за вашу помощь.
2 ответа
Использование location /path/to/xxx.php
вместо location xxx.php
,
Я думаю, что упустил важный момент: сервер - это прокси-сервер, а у вышестоящего сервера есть много правил переписывания, поэтому здесь нужно сопоставить не сам файл, а URL-адрес.
так что решение таково:
найдите правило перезаписи на вышестоящем сервере, найдите ключевое слово, которое вы хотите сопоставить, добавьте
location ^~ /keyword {
return 404;
}