有人可以帮助我如何设置 nginx 转发来执行以下操作:
这就是我到目前为止所拥有的。我本来打算改编它,但说实话,我无法起步
location ~* ^/pdf/(.*)$ {
rewrite ^/pdf/(\d+)*$ /pdf.php;
}
我想要它:
https://example.com/pdf/My-Old-Man
https://example.com/pdf/My-Old-Man/
https://example.com/pdf/Big-Hamster
https://example.com/pdf/Big-Hamster/
并将它们转发给pdf.php
pdf.php
的调用https://example.com/pdf/My-Old-Man/bobchips
我知道这要求很高,但我认为这种事情真的很有用,而且我在互联网上看不到有人这样做。
这是可能的解决方案之一:
location ^~ /pdf/ {
location ~ ^/pdf/(?<name>[^/]+)/?$ {
rewrite ^ /pdf.php?book=$name;
}
return 403;
}
location = /pdf.php {
internal;
# your php handler here, e.g.:
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$uri;
fastcgi_pass unix:/path/to/php.sock;
}
请求的名称应作为 PHP 脚本中的
book
查询参数提供。