我正在尝试强制nginx通过php-fpm处理以下网址:
任何以
结尾的网址我正在尝试以下正则表达式,但它不起作用:
location ^~ ^((.*\.php)|/sitemap.xml)+$ {
答案 0 :(得分:2)
尝试......
location ~ (\.php|sitemap\.xml|api/api\.js)$ {
...
}
答案 1 :(得分:2)
你不应该试图强迫Nginx向PHP发送内容。这是'错误的方式'。您应该让Nginx查看该文件是否存在,如果不存在则通过。据了解,* .php需要由PHP处理才能传递.php。
location / {
try_files $uri /index.php;
}
location ~ \.php {
fastcgi_pass unix:/tmp/php-fpm.socket;
}
location = /api/api.js {
fastcgi_pass unix:/tmp/php-fpm.socket;
}
location = /sitemap.xml {
fastcgi_pass unix:/tmp/php-fpm.socket;
}
从长远来看,当你不了解Nginx位置阻止如何工作时,试图为位置维护正则表达式会非常痛苦。