Php 一个图像的重写规则

Php 一个图像的重写规则,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我有一个.htaccess文件,其内容如下: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> 重新启动发动机 重写基/ 重写cond%{REQUEST_FILENAME}-F 重写c

我有一个.htaccess文件,其内容如下:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

重新启动发动机
重写基/
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
index.php上有一个应该始终显示的图像,但是当我导航到一个重写的路径时,对该图像的请求将以该路径作为前缀。因此,“categories”部分虽然仍应在images/foo.png上显示my foo.png,但现在有路径categories/images/foo.png


我可以严格使用.htaccess重写规则来解决这个问题吗?如果是,如何处理?

这应该接受对图像的任何请求,并将其重写为根/images/foo.png:

RewriteRule ^.*/images/foo.png$ /images/foo.png

请注意,如果您在/images/foo.png的某处有一个不同的图像,则对该图像的请求也将被重写为/images/foo.png,除非您为其编写特定的例外情况。

一个更简单的解决方案是基于站点的根文件夹在html中为img元素使用src。(如果只是为了那一张照片……)

例如:



无论您在哪个文件夹中,这都会指向您。

这听起来像是相对URL与绝对URL的混淆。当您有类似
http://domain.com/category/post/name
相对URI库是
/category/post
,浏览器将在Web服务器返回的内容中提供的所有相对链接前面加上相应的URI。为了告诉浏览器真正的URI基础是什么,您可以在标题中包含以下内容:

<base href="/">


或者,您可以简单地将所有相对URL更改为绝对URL。

我将把它标记为答案,即使它避开了.htaccess作为解决方案。依赖.htaccess是我的错误,事实上,这个.htaccess文件破坏了我的整个网站。该网站实际上甚至不应该引用分类页面上的图像,所以这个问题真的没有意义。
<base href="/">