@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
  • Вопрос задан
  • 75 просмотров
Решения вопроса 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;
}
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
SaveTime Москва
от 140 000 до 200 000 руб.
COSMOS Москва
от 120 000 до 150 000 руб.
Foach Санкт-Петербург
от 80 000 до 100 000 руб.
16 янв. 2019, в 14:53
20000 руб./за проект
16 янв. 2019, в 14:52
3000 руб./за проект
16 янв. 2019, в 14:26
50 руб./за 1000 зн.