apache 一个目录下不同文件跳转不同的404页面 .htaccess怎么设置 详细
时间: 2024-09-24 22:04:10 浏览: 6
Apache服务器使用`.htaccess`文件可以在单个目录下为不同类型的文件或错误提供定制的404错误页面。这里是一个例子来说明如何设置:
首先,在目录`/var/www/my_directory`下面创建一个`.htaccess`文件(如果还没有的话)。在`.htaccess`中,你可以添加类似这样的内容:
```apache
# 设置全局404错误处理器
RewriteEngine On
ErrorDocument 404 /custom_404.html
# 为特定文件(如.xml)定义单独的404页面
RewriteCond %{REQUEST_FILENAME} \.xml$ [NC]
ErrorDocument 404 /xml_404.html
# 为其他非存在的HTML文件定义另一份404页面
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /html_404.html [L]
```
解释一下各个部分:
- `RewriteEngine On` 开启重写引擎,允许使用`.htaccess`进行URL重定向和错误处理。
- `ErrorDocument 404 /custom_404.html` 设定通用的404错误页面,所有未匹配的URL都会转向`/custom_404.html`。
- `RewriteCond %{REQUEST_FILENAME} \.xml$ [NC]` 使用条件判断,如果请求的文件名以`.xml`结尾,则触发后续的错误文档。
- `ErrorDocument 404 /xml_404.html` 当请求的XML文件不存在时,显示`/xml_404.html`页面。
- `RewriteCond %{REQUEST_FILENAME} !-f` 检查请求的是否不是常规文件(即非目录)。
- `RewriteRule ^(.*)$ /html_404.html [L]` 如果前两个条件都不满足,将所有非目录非文件的请求重定向到`/html_404.html`。
注意,这里的文件名(如`custom_404.html`, `xml_404.html`, `html_404.html`)需要替换为你实际存放的404页面路径。