首页 > 解决方案 > 在 .htaccess 中使用 ErrorDocument 403 时 URL 发生变化

问题描述

我编写了一个 .htaccess 文件,以确保始终将访问者重定向到 https 和 www。除此之外,我还为 404 错误添加了一个自定义 html 页面。

当访问者尝试访问被禁止的文件时,我希望他们看到我的自定义 404 消息,以免显示路径包含被禁止的文件。

这是问题所在。例如,在浏览器中写入“example-domain.com/.htaccess”(无 www 或 https)时,浏览器中地址字段中的 URL 将更改为“https://www.example-domain.com/missing”。 html”。但我希望它在显示我的 404 页面时说“https://www.example-domain.com/.htaccess”。

它适用于 404 错误。但是,当在地址字段中输入一个既触发 403 错误又满足我的 .htaccess 文件中的至少一个重写条件(缺少 https 和/或 www)的路径时,我遇到了上述问题。

这是 .htaccess 文件中的代码:

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTP_HOST} ^example-domain.com [NC]
RewriteRule ^(.*)$ https://www.example-domain.com/$1 [L,R=301,NC]

ErrorDocument 403 /missing.html
ErrorDocument 404 /missing.html

此致

标签: .htaccesswebhttp-status-code-403

解决方案


推荐阅读