我在多个目录(/ jobs / marketing /,/ jobs / content / etc)中有.php文件需要干净地映射到/jobs/name-of-file.php.
例如点击网址:
/jobs/digital-marketing
需要映射到:
/jobs/marketing/digital-marketing.php
假设每个php文件的文件名在目录中是唯一的是安全的.
我目前的nginx设置如下:
location /jobs {
expires max;
add_header Cache-Control public;
add_header Pragma public;
rewrite ^/jobs[\/]?$/marketing/jobs.php last;
location ~* ^/jobs/([\-a-z0-9]*)${
try_files /marketing/jobs/engineering/$1.php
/marketing/jobs/marketing/$1.php
/marketing/jobs/business-development/$1.php
/marketing/jobs/content/$1.php;
}
location ~ ^/.+\.php($|/) {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
include fastcgi_params;
fastcgi_read_timeout 3000;
}
}
这似乎非常接近,除了下载文件的纯文本版本而不是nginx重定向到它.我想我需要以某种方式用另一个位置块捕获正确的文件,但我似乎没有任何工作(这可能不是正确的方法).
关于如何实现这一点的任何想法?或者更好的方法呢?
谢谢.