Назад | Перейти на главную страницу

Nginx переписывает * .html в * .php

Я установил свой первый сайт Nginx, и все важные изменения были выполнены. Они должны были быть ручными, никакие правила, возможно, не справились бы с этим, поэтому у меня есть множество правил, подобных этому, для обработки старых URL-адресов, которые могут быть проиндексированы или добавлены в закладки:

rewrite ^/html/Air_III.html /designers-elements-air permanent;

Есть еще один набор странных файлов, которые, кажется, привлекают трафик в тех частях сайта, которые мы еще не успели просмотреть, поэтому я просто скопировал их. Большинство из них были переименованы в .php из старого .html и в остальном не изменились, но, вероятно, некоторые из них остались .html.

Я ищу правило, которое будет обрабатывать случай запроса любого файла .html в любом каталоге, который фактически не соответствует текущему файлу с таким именем и будет перезаписан в файл .php, если он существует.

На языке Apache это будет redirect permanent а не переписывать. Я бы предпочел не отслеживать все это и делать вручную!

Вам понадобится if заявление чтобы проверить существование файла и соответствующим образом перезаписать:

location ~ \.html$ {
    if (!-f $request_filename) {
        rewrite ^(.*)\.html$ $1.php permanent;
    }
}