Переписать правило для корневого файла в nginx?

Я просто хочу перенаправить / в другой файл, а не index.php/.html.

Так на Apache я могу сделать это..

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule . /path/to/dir/index.html [L]

Попытка сделать это в nginx просто не запускается, кажется:

if (-f $request_filename){
    set $rule_0 1$rule_0;
}
if ($rule_0 = "1"){
    rewrite /. /path/to/dir/index.html last;
}

Также попробовал это:

if ($request_filename ~ "/index.php"){
    set $rule_3 1$rule_3;
}

if ($args ~ "^$"){
    set $rule_3 2$rule_3;
}

if ($rule_3 = "21"){
    rewrite /. /wp-content/plugins/i-static/content/index.html last;
}

Он действует так, как будто его даже не существует, и просто печатает index.php.

1 ответ

Решение

Если вы хотите изолировать один URI /, использовать location = вариант. Пытаться:

location = / { rewrite ^ /new/index.html last; }

Это выполнит внутреннюю перезапись. Смотрите этот документ для деталей.

Другие вопросы по тегам