Как переписать расширение .php без окончания на Nginx?

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

Я уже настроил, что оба доступны. С .php и без .php в браузере. Но теперь просто нужно переписать.

Ты можешь помочь мне их?

location / {
        try_files $uri $uri $uri/ @extensionless-php;
    }

    location @extensionless-php {
        rewrite ^(.*)$ $1.php last;
    }

С наилучшими пожеланиями

Вы пробовали этот ответ stackoverflow.com/a/21911610/8828489?

Ha. Huynh 17.12.2018 01:14

То же самое и без этого: location / { index index.html index.htm index.php; } location ~ \.php$ { try_files $uri =404; } - где index index.html index.htm index.php; уже определен в корневом каталоге и не думаю, что try_files предназначен для перезаписи ^^ На моей стороне просто перезапись с .php на без него отсутствует.

Fyndor 17.12.2018 01:22
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
2
849
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Предположительно у вас есть блок location ~ \.php для обработки URI, которые заканчиваются на .php. И вы должны включить в этот блок инструкцию try_files $uri =404;, чтобы избежать передача неконтролируемых запросов в PHP.

Вы также можете добавить в этот блок директиву internal, которая предотвратит внешний доступ к URI .php, так что будут работать только ваши PHP URI без расширения. Подробнее см. этот документ.

Например:

location ~ \.php$ (
    internal;
    try_files $uri =404;
    ...
}

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

Например:

if ($request_uri ~ \.php($|\?))
{
    rewrite ^(.*)\.php$ $1 permanent;
}

См. это предупреждение об использовании if.

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

Похожие вопросы

Передача переменной URL-адреса PHP печатает имя переменной, а не значение
Как я могу проверить / увидеть объем памяти, занимаемый PHP-скриптом?
PHP domDocument работает некорректно, когда обертка узла на рисунке?
Распечатать конечные значения многомерного массива с полным путем к ключам
Доступ к пользовательским роликам в медиа-ленте, освещающей историю (Получить все истории пользователя) по проекту `mgp25 / Instagram-API`
Отправлен заголовок Strict-Transport-Security, но Chrome все еще запрашивает через http
При замене плана подписки возникает ошибка «Вызов функции-члена asStripeCustomer () при нулевом значении» [Laravel Cashier]
Могу ли я отправить дополнительные данные в Cybersource Secure Acceptance для использования после успешной оплаты?
Как получить максимальную и минимальную широту и долготу из запроса mysql в PHP
Сгенерированный PDF-файл, прикрепленный к электронному письму, не выполняется при использовании JOB и Supervisor