如何使Apache重写不破坏映像?

时间:2018-07-25 22:05:31

标签: apache .htaccess http webserver

我在example.com上有一个非常简单的html页面。它仅由以下index.html组成:

<html>
<body style="background-color:black;">
<img src="images/picture1.jpg" alt="example" style="width:40%;">
</html>

该页面的加载完全符合我访问example.com时的预期,但我希望这样做,因此对example.com的任何请求都将重定向到此首页(因此example.com/catfood将用户带到example.com )。我为此添加了以下内容到.htaccess

RewriteEngine On
RewriteCond %{REQUEST_URI} !=/
RewriteRule ^ / [R=301]

它可以正确重定向,但是会损坏图像。我相信这是因为出现了对example.com/images/picture1.jpg的请求,现在已将其重定向到索引页,但是我不确定我需要添加到.htaccess中的内容以允许在发生重定向的同时进行仍将此图像加载在首页上。

1 个答案:

答案 0 :(得分:1)

添加另一个RewriteCond,表示该规则仅在请求未指向现有文件时适用。

RewriteCond   %{REQUEST_FILENAME} !-f

所以:

RewriteEngine On
RewriteCond   %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !=/
RewriteRule ^ / [R=301]

请参阅 https://httpd.apache.org/docs/current/mod/mod_rewrite.html