@DiGiTAll

Как игнорировать некоторые папки при глобальном rewrite в nginx конфиге?

Есть сайт site.ru. В корне лежат три папки со скриптами: folder1, folder2, folder3.

Они должены быть доступны по прямой ссылке.
Т.е. я должен иметь возможность запустить скрипт site.ru/folder3/script.php из браузера.

Все запросы к главной сайта сайту, должны отправляться на скрипт-обработчик.
Например, при запросе:
site.ru/bla-bla-bla
Должен вызываться скрипт:
site.ru/folder1/index.php?get=bla-bla-bla

Если я добавляю директиву
rewrite ^/(.*)$ /folder1/index.php?get=$1 last;
То у меня редиректит всё. Т.е. напрямую к папке не обратиться.
В интернете советую прописать её в location / , однако если я заменяю имеющиеся там данные - сайт начинает выдавать 500-ую ошибку.

Текущий конфиг выглядит так:

server {
		server_name site.ru www.site.ru;
		listen 255.255.255.255;
		disable_symlinks if_not_owner from=$root_path;
		set $root_path /var/www/site/data/www/site.ru;
		location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
			root $root_path;
			access_log /var/www/nginx-logs/alishort isp;
			access_log /var/www/httpd-logs/site.ru.access.log ;
			error_page 404 = @fallback;
		}
		location / {

			proxy_pass http://255.255.255.255:81;
			proxy_redirect http://255.255.255.255:81/ /;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Forwarded-Proto $scheme;
			proxy_set_header X-Real-IP $remote_addr;
#

		}



		location ~* ^/(webstat|awstats|webmail|myadmin|pgadmin)/ {
			proxy_pass http://255.255.255.255:81;
			proxy_redirect http://255.255.255.255:81/ /;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Forwarded-Proto $scheme;
			proxy_set_header X-Real-IP $remote_addr;
		}
		location @fallback {
			proxy_pass http://255.255.255.255:81;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Forwarded-Proto $scheme;
			proxy_set_header X-Real-IP $remote_addr;
		}
		location ^~ /webstat/ {
			auth_basic "Restricted area";
			auth_basic_user_file /var/www/site/data/etc/1060800.passwd;
			try_files $uri @fallback;
		}
		include /usr/local/ispmgr/etc/nginx.inc;
	}
  • Вопрос задан
  • 165 просмотров
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
Делайте отдельные локейшены для каталогов, которые должны быть доступы по прямой ссылке.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект
22 нояб. 2024, в 22:26
3500 руб./за проект