Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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
如何让apache总是返回代码200而不是数据304?_Apache_Http - Fatal编程技术网

如何让apache总是返回代码200而不是数据304?

如何让apache总是返回代码200而不是数据304?,apache,http,Apache,Http,我希望apachehttpd通过GET返回带有资源请求数据的响应代码200,而不是返回没有数据的响应代码304。有人知道怎么做吗 提前感谢在发出请求时,不要向其发送任何与缓存相关的标题(,如果自以来进行了修改,,如果没有匹配的和朋友)。这会通知服务器客户端未缓存,并使其始终返回数据。我不确定是否完全理解您的问题。我假设如果客户端使用正确的URL,您希望提供一个正常的HTTP应答;如果客户端使用不存在的URL,则希望提供一个默认页面(状态为200) 如果是这种情况,可以这样实现: RewriteC

我希望apachehttpd通过GET返回带有资源请求数据的响应代码200,而不是返回没有数据的响应代码304。有人知道怎么做吗


提前感谢

在发出请求时,不要向其发送任何与缓存相关的标题(
,如果自
以来进行了修改,
,如果没有匹配的
和朋友)。这会通知服务器客户端未缓存,并使其始终返回数据。

我不确定是否完全理解您的问题。我假设如果客户端使用正确的URL,您希望提供一个正常的HTTP应答;如果客户端使用不存在的URL,则希望提供一个默认页面(状态为200)

如果是这种情况,可以这样实现:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*+ /dummy.html

第一行是URL不处理web服务器上现有文件的条件。如果该条件成立,则执行第二行,为客户端提供一个虚拟页面。

将以下指令添加到apache配置文件中

RequestHeader未设置,如果自


如果从客户端发送了修改后的头,则此选项将被忽略,这样您将得到not 304 not MODIFED响应。

删除头,将以下内容添加到httpd.conf文件中

<FilesMatch "\.(filetype1|filetype2)$">
    RequestHeader unset If-Modified-Since
    RequestHeader unset If-None-Match
</FilesMatch>

RequestHeader未设置,如果自
如果不匹配,则取消设置RequestHeader

Matti,不幸的是,我无法控制请求/请求资源的内容。我希望有一种方法可以让apache直接返回资源,不管是否有缓存头。@rafael:那么,如果你不想要请求,为什么客户端首先要缓存请求呢?发送一些缓存控制头来告诉它不要缓存你的内容怎么样?我无法控制客户端的缓存。使用缓存控制头不起作用。有没有办法告诉apache忽略If Modified,因为不管资源是什么?@rafael:我不太愿意给你一些会破坏你的Web服务器的指令……你真是太好了。我听到并理解你的担忧。也许我应该注意到,我正在开发一个dev env。在我的开发环境中,我只需要让客户端使用apache ignore缓存,而不是为不存在的URL提供默认答案。这是关于忽略If-Modified-Since,并像资源已更改一样重新回答。我无法完全实现相反的效果。对于所有缓存的内容(缓存在Apache服务器上,头文件带有ETag),服务器返回200,即使所有头文件都正确就位。(我还禁用了mod_放气模块)。你知道为什么会这样吗?您为启用此响应而进行的任何配置更改?