Возможный дубликат:
Требуется настраиваемое регулярное выражение 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;
}
Что я здесь делаю не так?
Для этого вам вообще не нужно регулярное выражение. Просто добавьте его в существующие 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.)