没有.htaccess

时间:2017-09-28 11:44:19

标签: apache .htaccess mod-rewrite

我正在进行一些性能增强,并且遇到了.htaccess文件可以(并且应该)汇总到httpd.conf的建议。

来自Apache .htaccess How To

  

如果您有权访问httpd主服务器配置文件,则应该完全避免使用.htaccess文件。使用.htaccess文件会降低Apache http服务器的速度。

作为我最初探索的一部分,我只是在我的虚拟主机配置中包含根.htaccess文件,以便稍后对其进行整理。

大多数情况下它似乎有效,而且这是指令:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(jpg|jpeg|png|gif|ico|swf|bmp)$ - [L,R=404,NC]

不幸的是,我们在.htaccess目录中还有一个/images文件,其中包含以下指令:

ErrorDocument 404 /images/notfound.gif

用“找不到”的图像替换任何404图像。图像。

是否可以在根.htaccess内重新创建此行为?最终,这将包含在虚拟主机配置中。

我尝试使用以下内容,但在投出500错误时并不感到惊讶:

ErrorDocument images/404 /images/notfound.gif

1 个答案:

答案 0 :(得分:2)

您可以在虚拟主机.conf或全局httpd.conf(aka apache2.conf)文件中执行此操作。这里重要的一点是你只为你的/ images /目录做这件事,否则你会在任何404错误中得到这个notfound.gif。

e.g。对于httpd.conf或Virtualhost

<Location /images>
    ErrorDocument 404 /images/notfound.gif
</Location>

您也可以使用目录指令

<Directory /absolute/path/to/images>
    ErrorDocument 404 /images/notfound.gif
</Directory>

如果您的服务器上只有一个网站可以将其放在httpd.conf中,但更好的解决方案是Virtualhost配置。

ErrorDocument images/404 /images/notfound.gif语法错误,请参阅:https://httpd.apache.org/docs/2.4/custom-error.html