如何缓存通过PHP返回的脚本

如何缓存通过PHP返回的脚本,php,web,browser,webserver,browser-cache,Php,Web,Browser,Webserver,Browser Cache,我需要返回脚本给用户,如果他被接受。它太长,无法检查用户,我希望返回304未修改。我有简单的代码要检查,但它不工作。浏览器在修改后不重新请求。如果它是source*.js扩展名,那么它可以是script.js?ver=1.0?但不能使用*.php 这条路写还是有另一条 html代码: <script src="get_secret_script.php"></script> 浏览器请求(不是第一个): 关于您的案例,我认为您可以在htaccess或服务器配置中应用一些重

我需要返回脚本给用户,如果他被接受。它太长,无法检查用户,我希望返回304未修改。我有简单的代码要检查,但它不工作。浏览器在修改后不重新请求。如果它是source*.js扩展名,那么它可以是script.js?ver=1.0?但不能使用*.php 这条路写还是有另一条

html代码:

<script src="get_secret_script.php"></script>
浏览器请求(不是第一个):


关于您的案例,我认为您可以在htaccess或服务器配置中应用一些重写规则: 例如:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase  /
    RewriteRule ^script.js get_secret_script.php[NC,L]
</IfModule>

重新启动发动机
重写基/
重写规则^script.js get\u secret\u script.php[NC,L]

在get\u secret\u script.php中,我需要检查此用户是否有权访问此脚本。如果我写这个,它会将脚本返回给所有用户。对吗?不,重写规则只是简单地更改url。例如:^script.js get_secret_script.php[NC,L]当它满足请求script.js时,它将处理get_secret_script.php。您可以测试和调试一些重写规则并查看结果。如果要保存参数,如secret.js?123456->get_secret_script.php?id=123456?所有参数也将以相同的名称转发。我认为您应该更改js文件中的参数:secret.js?ver=12345,这样在php中,您也可以检索此参数并开展业务,或者您可以自定义重写规则。
GET /test/get_secret_script.php HTTP/1.1
Host: 127.0.0.1
Connection: keep-alive
User-Agent: Browser identity string
Accept: */*
Referer: http://127.0.0.1/test/test.html
Accept-Encoding: gzip, deflate, br
Accept-Language: ...
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase  /
    RewriteRule ^script.js get_secret_script.php[NC,L]
</IfModule>