网址以斜杠/

时间:2019-12-12 14:35:25

标签: .htaccess redirect http-status-code-404

我们的.htaccess文件具有通常的404行,并且只有一个重写规则,如下所示:

ErrorDocument 404 /404.html

# Suppress www. in URLs
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www.coastmetalsolutions.com$ [NC]
    RewriteRule ^(.*)$ https://coastmetalsolutions.com/$1 [R=301,L]
</IfModule>

如果您测试的页面找不到https://coastmetalsolutions.com/test,则404页面有效;如果您尝试使用相同的末尾加/斜杠,则会显示混乱的页面。

注意:

  • 使用Cloudflare
  • Google Search Console报告3个“页面”,其中包含重定向错误;所有3个网址均以/斜杠结尾,并导致出现乱码的404页面

哦,嘿,我刚刚在Ctrl-Shift-I中注意到了这些错误: Console Errors

拒绝应用''中的样式,因为它的MIME类型('text / html')不是受支持的样式表MIME类型,并且启用了严格的MIME检查 获取https://coastmetalsolutions.com/test/js/jquery.js净值:: ERR_ABORTED 404

2 个答案:

答案 0 :(得分:2)

首先,您遇到404错误,样式表也出现404错误,但是html 404页面正在呈现,而其他浏览器正在执行严格的mime检查。

前端

您可以在样式表中使用绝对网址,也可以尝试使用斜杠。

href="https://coastmetalsolutions.com/main.css"href="/main.css"

您也可以在头部分使用<base href="/">标签,而不必重写每个css和js标签。

服务器端

现在服务器中还有另外一件事,您可以像下面这样注释此部分。

#Header set X-Content-Type-Options "nosniff"

但是我不建议这样做会打开像安全链接之类的安全漏洞。

答案 1 :(得分:0)

了解问题所在:

Apache 404页面将通过多个URL进行响应。例如,以下是所有可能导致404的URL。

https://coastmetalsolutions.com/404
https://coastmetalsolutions.com/404/
https://coastmetalsolutions.com/404/page
https://coastmetalsolutions.com/404/page/

那么诸如<link rel="stylesheet" href="style.css">这样的相对路径会发生什么?

如果您在:

https://coastmetalsolutions.com/404

它将要求:

https://coastmetalsolutions.com/style.css

如果您在:

https://coastmetalsolutions.com/404/

它将要求:

https://coastmetalsolutions.com/404/style.css

等等。

由于这个原因,您不能真正在这样的404页面中使用相对路径。

选项1(推荐):

使用更特定的URL。

您可以改用相对于域的URL,并使用反斜杠(/style.css)。

<link rel="stylesheet" href="/style.css">

当然,相对协议(//coastmetalsolutions.com/style.css)和绝对URL(https://coastmetalsolutions.com/style.css)也会起作用。

选项2(不推荐):

有时会将Web服务器配置为将错误页面重定向到特定的URL,以显示错误页面(例如:https://coastmetalsolutions.com/404)。

但是,我不推荐这种方法,因为它发出的HTTP请求和流量超出了必要。


MIME类型错误:

这些是您的404 HTML页面在预期CSS和JS投放的结果。一旦更正了这些路径或上传了这些文件,这些错误就应该消失了。

相关问题