это вопрос от
Не работает nginx htaccess для специальной страницы в redmine
Повторяю: у меня есть система управления проектами redmine. Также у меня есть nginx, как обратный прокси для Redmine. Итак, мне нужно заблокировать какую-то страницу в Redmine для пользователей. В redmine.conf я сделал:
location /projects/wwe/dmsf
{
auth_basic "Test4";
auth_basic_user_file /etc/nginx/legalinfopass;
alias /usr/share/redmine/public;
try_files $uri @fcgi;
}
Я создал файл htaccess через htpasswd. Оно работает. Но мне нужно заблокировать QUERY STRING
. Я хочу что-то вроде
location /projects/wwe/dmsf?folder_id=351
{
auth_basic "Test4";
auth_basic_user_file /etc/nginx/legalinfopass;
alias /usr/share/redmine/public;
try_files $uri @fcgi;
}
Но конечно не работает. Мой полный redmine.conf
:
upstream redmine_default
{
#server localhost:3000;
server unix:/tmp/redmine.socket;
}
server
{
include listen.conf;
include listen_ssl.conf;
ssl_certificate_key /etc/letsencrypt/live/redmine.wwe.com/privkey.pem;
ssl_certificate /etc/letsencrypt/live/redmine.wwe.com/fullchain.pem;
server_name www.redmine.wwe.com redmine.wwe.com;
# letsencrypt
location ~ ^/\.well-known/acme-challenge
{
auth_basic off; root /home/www/acme;
}
location /
{
rewrite ^ https://redmine.wwe.org$request_uri? permanent;
}
}
server
{
listen 192.168.110.24;
server_name redmine.wwe.org www.redmine.wwe.org;
# letsencrypt
location ~ ^/\.well-known/acme-challenge
{
auth_basic off;
root /home/www/acme;
}
location /
{
rewrite ^ https://redmine.wwe.org$request_uri? permanent;
}
}
server
{
listen 192.168.110.24:443 ssl http2;
client_max_body_size 250M;
server_name redmine.wwe.org;
ssl_certificate_key /etc/letsencrypt/live/www.redmine.wwe.org/privkey.pem;
ssl_certificate /etc/letsencrypt/live/www.redmine.wwe.org/fullchain.pem;
# letsencrypt
location ~ ^/\.well-known/acme-challenge
{
auth_basic off; root /home/www/acme;
}
location /projects/wwe/wiki/PHP_programmers
{
auth_basic "Test";
auth_basic_user_file /etc/nginx/wikipass;
alias /usr/share/redmine/public;
try_files $uri @fcgi;
}
location /projects/wwe/wiki/Vacancy_interviews
{
auth_basic "Test";
auth_basic_user_file /etc/nginx/wikipass;
alias /usr/share/redmine/public;
try_files $uri @fcgi;
}
location /projects/wwe/wiki/Hidden_for_creds
{
auth_basic "Test2";
auth_basic_user_file /etc/nginx/credpass;
alias /usr/share/redmine/public;
try_files $uri @fcgi;
}
location /projects/wwe/wiki/Management
{
auth_basic "Test3";
auth_basic_user_file /etc/nginx/managementpass;
alias /usr/share/redmine/public;
try_files $uri @fcgi;
}
location /projects/wwe/dmsf?folder_id=351
{
auth_basic "Test4";
auth_basic_user_file /etc/nginx/legalinfopass;
alias /usr/share/redmine/public;
try_files $uri @fcgi;
}
location /files
{
auth_basic off;
internal;
root /usr/share/redmine;
}
location /public
{
auth_basic off;
internal;
root /usr/share/redmine;
}
location /tmp2
{
auth_basic off;
internal;
root /usr/share/redmine;
}
location /
{
auth_basic off;
alias /usr/share/redmine/public;
try_files $uri @fcgi;
}
location @fcgi
{
auth_basic off;
##proxy_set_header X-Sendfile-Type X-Accel-Redirect;
##proxy_set_header X-Accel-Mapping /usr/share/redmine/=/;
##proxy_pass http://redmine2_default;
include uwsgi_params;
uwsgi_pass redmine_default;
uwsgi_modifier1 7;
}
}
Вы должны попробовать это и поэкспериментировать с регулярным выражением, чтобы настроить его в соответствии с вашими требованиями.
location ~* ^\/projects/wwe/dmsf.+351
{
auth_basic "Test4";
auth_basic_user_file /etc/nginx/legalinfopass;
alias /usr/share/redmine/public;
try_files $uri @fcgi;
}