HTACCESS会忽略图像

问题描述

我有以下非常简单的htaccess文件

RewriteEngine On
RewriteRule a.jpg b.jpg
RewriteRule c.PHP d.PHP

所有四个资源都在根文件夹中。

PHP规则可以按预期工作,但是,将忽略JPG规则,就像它不在那里一样。图片a.jpg继续显示

我完全不知道为什么会发生这种情况。

我能想到的唯一解释是,如果请求的资源是映像,则Apache会以某种方式完全不调用htaccess。那有可能吗?

解决方法

我找出了原因,并且在有人遇到相同问题的情况下发布了答案。

似乎在服务器上同时配置了Nginx和Apache。 Nginx是面向互联网的,而Apache是​​内部的。

看来Web托管公司这样做是为了从Nginx的更好性能中受益,并同时向来自Apache环境的任何人提供兼容性。

当Nginx从互联网接收到PHP请求时,它允许请求通过并到达Apache,但是当资源是静态资源(图像,css,js)时,Nginx会自行提供资源以实现最佳性能。

上面的htaccess图片规则未得到处理,因为请求甚至没有到达Apache。

我暂时不允许Nginx自行处理图像并允许它们继续处理Apache,从而解决了这个问题。

当然,更好的解决方案是删除htaccess依赖关系并处理Nginx配置文件中的所有内容,这将在不久后完成。

最好的解决方案当然是完全删除Apache,但这是一台共享服务器,我没有完全控制权。