denisemenov
@denisemenov

Как из url удалить index, .php, .html, если у тебя NGINX?

Коллеги, подскажите, как безболезненно переехать на nginx и избавиться от лишних index, .php, .html
server {
    listen      %ip%:%web_ssl_port%;
    server_name %domain_idn%;
    root        %sdocroot%;
    index       index.php index.html index.htm;

    location ~ [^/]\.php(/|$) {
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        if (!-f $document_root$fastcgi_script_name) {
            return  404;
        }

        fastcgi_pass    %backend_lsnr%;
        fastcgi_index   index.php;
        include         /etc/nginx/fastcgi_params;
    }
}
  • Вопрос задан
  • 7281 просмотр
Решения вопроса 1
denisemenov
@denisemenov Автор вопроса
location / {
    # Удаляем index.html из всех уровней url
    rewrite     ^(/.*)/index.html $1 permanent;
    # Удаляем .php
    rewrite     ^(/.*)\.php(\?.*)?$ $1$2 permanent;
    # Удаляем .html
    rewrite     ^(/.*)\.html(\?.*)?$ $1$2 permanent;
    # Удаляем закрывающий слэш
    rewrite     ^/(.*)/$ $1 permanent;
    # Определяем порядок файлов для обработки запроса
    try_files   $uri/index.php $uri.php $uri/index.html $uri.html $uri/ $uri =404;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@hector
php программист
Посмотрите как шаблоны делать. Пример тут https://github.com/Hector68/vestacp-yii2-apache
Ответ написан
Ваш ответ на вопрос

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

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