Apache HTACCESS忽略图像

Apache HTACCESS忽略图像,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我有以下非常简单的htaccess文件: RewriteEngine On RewriteRule a.jpg b.jpg RewriteRule c.php d.php 所有四个资源都在根文件夹中 PHP规则按预期工作,但是,JPG规则被忽略,就好像它不存在一样。图像a.jpg将继续显示 我完全不知道为什么会这样 我能想到的唯一解释是,如果请求的资源是映像,Apache不知何故被配置为根本不调用htaccess。这有可能吗?我找到了原因,我正在发布我的答案,以防有人面临同样的问题 似乎Ngi

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

RewriteEngine On
RewriteRule a.jpg b.jpg
RewriteRule c.php d.php
所有四个资源都在根文件夹中

PHP规则按预期工作,但是,JPG规则被忽略,就好像它不存在一样。图像a.jpg将继续显示

我完全不知道为什么会这样


我能想到的唯一解释是,如果请求的资源是映像,Apache不知何故被配置为根本不调用htaccess。这有可能吗?

我找到了原因,我正在发布我的答案,以防有人面临同样的问题

似乎Nginx和Apache都是在服务器上配置的。Nginx面向互联网,Apache是内部的

这家网络托管公司这样做似乎是为了从Nginx更好的性能中获益,同时为来自Apache环境的任何人提供兼容性

当Nginx从internet接收到PHP请求时,它允许请求通过并到达Apache,但当资源是静态资源(图像、css、js)时,Nginx会交付资源本身以获得最佳性能

上面的htaccess映像规则未被处理,因为请求甚至未到达Apache

我暂时解决了这个问题,不允许Nginx自己处理图像,并允许它们继续使用Apache

当然,更好的解决方案是删除htaccess依赖项并处理Nginx配置文件中的所有内容,我很快就会这么做


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

不,在另一台机器上尝试过,同样的事情“Apache不知何故被配置为不调用htaccess”-技术上可能(在某种程度上),但在我看来极不可能。您有权访问服务器配置吗?检查浏览器中的网络流量-这将准确地告诉您此资源的服务方式。您是否确认这不是浏览器缓存问题?尝试隐姓埋名或以某种方式清除缓存。@jminardi第一条评论(由于某种原因被删除)就是这样问的。如果不是浏览器缓存,我强烈建议使用某种服务器端缓存或代理缓存。转辙机不一定能解决这个问题。