@denlem
Programmer

Nginx: Как сделать rewrite всех корневых запросов на index.php?

Подскажите где ошибка в конфиге nginx?
Нужно сделать, чтобы при вызове любого файла из корня сайта(даже несуществующего) было перенаправление на /index.php без замены урл-а в браузере

Настройка конфига nginx:
Сделал так, почему то не работает, выдает 500 ошибку:
так
location ~ /[^\/]+ { 
		rewrite  ^/[\w\W]+$  /index.php;
	}

или
location ~ /[^\/]+ { 
		rewrite  ^/[^\/]+$  /index.php;
	}


В частном случае работает
location = /robots.txt {
	 	rewrite ^/robots.txt$ /robots.txt.php;
	}


Тут при вызове конкретного файла(robots.txt), идет вызов другого(robots.txt.php), без перенаправления.
Но нужно сделать, чтобы при вызове любого файла шло перенаправление также без редиректа на index.php
  • Вопрос задан
  • 220 просмотров
Решения вопроса 1
@Kostik_1993
PHP Backend Developer, Laravel, Yii, Vue, Node.js
location / {
    try_files $uri $uri/ /index.php?$query_string;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
kotomyava
@kotomyava
Системный администратор
Как-то так:
location = /index.php {
  # тут проксирование или fcgi
}

location ~ /[^\/]+ { 
  rewrite .* /index.php;
}
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы