Для удобства я настраиваю nginx с поддержкой нескольких доменов или подстановочных знаков вместо того, чтобы настраивать более 50 различных файлов, доступных для сайтов / *. Надеюсь, этого достаточно, чтобы показать вам, что я пытаюсь сделать. Некоторые являются статическими сайтами, некоторые динамическими с обычно установленным WordPress.
Если index.php существует, все работает как положено.
Если запрошен файл, который не существует (missing.html), выдается ошибка 500 из-за перезаписи. Зарегистрированная ошибка:
* 112 цикл перезаписи или внутреннего перенаправления при обработке "/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/ index.php / index.php / missing.html "
Базовая конфигурация nginx, которую я сейчас использую:
`
listen 80 default;
server _;
...
location / {
root /var/www/$host;
if (-f $request_filename) {
expires max;
break;
}
# problem, what if index.php does not exist?
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
}
}
...
`
Если index.php не существует, а файл также не существует, я хотел бы, чтобы это произошло с ошибкой 404. В настоящее время nginx не поддерживает множественные условия, если они вложены, или если так, мне нужен обходной путь.