Я пытаюсь сделать мои файлы php, работающие без расширения .php, заканчивающегося в браузере, и перенаправить все на не .php
Я уже настроил, что оба доступны. С .php и без .php в браузере. Но теперь просто нужно переписать.
Ты можешь помочь мне их?
location / {
try_files $uri $uri $uri/ @extensionless-php;
}
location @extensionless-php {
rewrite ^(.*)$ $1.php last;
}
С наилучшими пожеланиями
То же самое и без этого: location / { index index.html index.htm index.php; } location ~ \.php$ { try_files $uri =404; } - где index index.html index.htm index.php; уже определен в корневом каталоге и не думаю, что try_files предназначен для перезаписи ^^ На моей стороне просто перезапись с .php на без него отсутствует.






Предположительно у вас есть блок 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.
Вы пробовали этот ответ stackoverflow.com/a/21911610/8828489?