Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用nginx将js文件作为php提供服务?_Nginx - Fatal编程技术网

如何使用nginx将js文件作为php提供服务?

如何使用nginx将js文件作为php提供服务?,nginx,Nginx,e、 g example.com/apple.js作为php文件apple.js.php加载 使用apache时,它是: RewriteRule ^apple\.js$ apple.js.php [L] RewriteRule ^banana\.js$ banana.js.php [L] 如何使用nginx实现同样的功能 这是我尝试过的,显示了404错误 server { server_name www.site.co.uk; root /var/www/site/publ

e、 g example.com/apple.js作为php文件apple.js.php加载

使用apache时,它是:

RewriteRule ^apple\.js$ apple.js.php [L]
RewriteRule ^banana\.js$ banana.js.php [L] 
如何使用nginx实现同样的功能

这是我尝试过的,显示了404错误

server {
    server_name www.site.co.uk;

    root /var/www/site/public;

    access_log  /var/log/nginx/site.access.log;
    error_log  /var/log/nginx/site.error.log;

    listen 80;
    listen [::]:80;

    location ~ /apple.js {
        try_files $uri /apple.js.php;
    }

    location ~ /banana.js {
        try_files $uri /banana.js.php;
    }

    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;

        try_files $fastcgi_script_name =404;

        set $path_info $fastcgi_path_info;
        fastcgi_param PATH_INFO $path_info;

        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param HTTPS on;
        include fastcgi.conf;
        }
}

下面的
rewrite
规则允许使用PHP动态提供这些URL

www.site.co.uk/apple.js
www.site.co.uk/banana.js

Nginx服务器块 banana.js.php
感谢您刚刚尝试将其重命名为apple.js,但它没有解析php标记。我更愿意将它们保留为.php扩展名,而不必更改security.limit\u扩展名。我可以使用类似于此的重写吗?真棒的干杯,我这样做是为了我可以保持一个http引用记录
server {
  ...

  rewrite ^/apple\.js$  /apple.js.php;
  rewrite ^/banana\.js$ /banana.js.php;

  ...
}
<?php

header("Content-Type: text/javascript; charset=utf-8");
echo "This is BANANA by PHP";
<?php

header("Content-Type: text/javascript; charset=utf-8");
echo "This is APPLE by PHP";