可能重复:
需要自定义Nginx的正则expression式
期望的结果是这样的:
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; }
我在这里做错了什么?
你根本不需要一个正则expression式。 只需将其添加到您现有的try_files :
例:
try_files $uri.php $uri $uri/ @404;
如果你还没有使用try_files ,那么很快转换 ,同时使用这样的东西:
if (-e $request_filename.php) { rewrite ^(.+)$ $1.php last; }
(我从我最初从Apache转换到nginx的时候, 把笔记里的第二个例子从我的笔记中剥离出来,并且希望像Apache那样有一个URL /example加载/example.php 。)