我正在阅读 nginx 的文档,但是我不知道这个 '(?U)' 在这个正则表达式中做了什么。
http://wiki.nginx.org/HttpFastcgiModule#fastcgi_split_path_info
这是一个例子。脚本 show.php 接收字符串 article/0001 作为参数。以下配置将正确处理路径拆分:
location ~ ^.+\.php {
(...)
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
(...)
}
请求 /show.php/article/0001 将 SCRIPT_FILENAME 设置为 /path/to/php/show.php 并将 PATH_INFO 设置为 /article/0001。
这个正则表达式还不够吗?
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
谢谢