如果图像不存在以防止404,则尝试找出显示缺失图像默认图像的最佳方法。我添加了一个htaccess调用,它会显示一个图像,如果找不到图像,但它似乎没有工作。
这是在公共目录中,img文件夹也在公共文件夹中。
<FilesMatch ".(jpg|png|gif)$">
ErrorDocument 404 "img/no-image-available.gif"
</FilesMatch>
完整的htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
<FilesMatch "\.(jpe?g|png|gif)$">
ErrorDocument 404 "/img/no-image-available.gif"
</FilesMatch>
答案 0 :(得分:2)
ErrorDocument
需要默认图片的绝对路径,因此必须以/
您可以在.htaccess中试用此代码:
<FilesMatch "\.(jpe?g|png|gif)$">
ErrorDocument 404 "/img/no-image-available.gif"
</FilesMatch>
更新:将此代码保留在RewriteEngine On
行:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(jpe?g|png|gif)$ /img/no-image-available.gif [L,NC]
答案 1 :(得分:0)
您是否在apache2.conf中确保将AllowOverride设置为All?
默认设置为None,这意味着在这种情况下将忽略.htaccess。
Ubuntu服务器上的Apache示例
<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>