Требуется помощь по отладке перезаписи регулярного выражения nginx [дубликат]

Возможный дубликат:
Требуется настраиваемое регулярное выражение Nginx

Желаемый результат:

http://www.example.com/about/?r=something

к этому :

http://www.example.com/about.php/?r=something

Это то, что у меня есть, но оно не работает:

if (!-e $request_filename)
{
    rewrite ^/([^?]*[^?/])/?(\?.*)?$  /$1.php/$2  last;
    break;
}

Что я здесь делаю не так?

0
задан 13 April 2017 в 15:14
1 ответ

Для этого вам вообще не нужно регулярное выражение. Просто добавьте его в существующие try_files :

Пример:

try_files $uri.php $uri $uri/ @404;

Если вы (еще не) используете try_files , тогда скоро сконвертируете , и тем временем используйте что-то вроде этого:

if (-e $request_filename.php) {
    rewrite ^(.+)$ $1.php last;
}

(я вырвал этот второй пример из своих заметок, когда я первоначально преобразовал Apache в nginx и хотел иметь URL / example load / example .php , как это делал бы Apache.)

1
ответ дан 4 December 2019 в 21:42

Теги

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