Есть задача закрыть корп. сайт от индексации/поиска гугл/яндекс/ботов и прочих, т.е. чтобы внутренние файлы не оказались снаружи, в том числе и index.php При этом по ip ограничить не могу, т.к. сотрудники могут где угодно быть и заходить с разных ip. Первое что пришло на ум, это всю директорию закрыть с помощью пароля вроде
location / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/pass/htpasswd;
}
это спасет от индексации и поиска точечных запросов вроде site.com/index.php или site.com/config/init.php или надо еще закрыть не только корень, но другие location вроде ~ \.php$ ?
так же файл robots.txt
User-agent: *
Disallow: /
2ой вопрос конфиг так выглядит, при запросе типа site.com/main.html то все понятно, требуется авторизация. НО меня смущает, что при запросе вроде site.com/config/init.php то идет в обработку php-fpm и пустая страница. Можно ли как то предотвратить обработку до авторизации? полагаю дело в location ~ \.php$ {..}
server {
listen 80 default_server;
root /var/www;
index index.php index.html index.htm;
server_name site.com;
# этот location переделал под задачу
location / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/pass/htpasswd;
try_files $uri $uri/ =404;
}
# pass the PHP scripts to FastCGI server
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
и 3й вопрос, после авторизации планируется более детальные location прописать например вход в админку только по определенным ip и т.д. это все можно добавлять в конце конфига правильно?
location /admin/ {
allow xxx.xxx.xxx.xxx;
deny all;
}
Спасибо