📜  如何从静态页面的 URL 中删除 .html 扩展名?(1)

📅  最后修改于: 2023-12-03 15:37:56.545000             🧑  作者: Mango

如何从静态页面的 URL 中删除 .html 扩展名?

静态网站使用 .html 扩展名作为网页文件的后缀是很常见的,但有时候我们希望通过简化 URL,将 .html 扩展名从静态页面的 URL 中删除。本文将介绍如何实现这种删除扩展名的操作。

方法一:使用 Apache 服务器的 Rewrite 模块

如果您的网站使用 Apache 服务器,您可以使用 Rewrite 模块来删除 URL 中的 .html 扩展名。您需要在 Apache 的配置文件中添加以下代码:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]

以上代码的含义如下:

  • RewriteEngine On:打开 Rewrite 模块。
  • RewriteCond %{REQUEST_FILENAME} !-f:检查请求的文件是否存在。如果请求的文件存在,则不执行后面的 RewriteRule。
  • RewriteRule ^([^\.]+)$ $1.html [NC,L]:该规则匹配不含 . 的 URL,并将其重写为带有 .html 后缀的 URL。其中,^([^\.]+)$ 表示匹配不含 . 的字符串,$1.html 表示替换为以 .html 结尾的字符串,[NC,L] 表示匹配不区分大小写并停止处理 Rewrite 规则。

以上代码的实现依赖于服务器的 Rewrite 模块,因此只适用于 Apache 服务器。

方法二:使用 JavaScript

如果您的静态网站是纯前端的,您可以使用 JavaScript 来删除 URL 中的 .html 扩展名。您需要添加以下代码到所有的 HTML 页面中:

if (location.pathname.match(/\.html$/)) {
  location.pathname = location.pathname.replace(/\.html$/, '');
}

以上代码的含义如下:

  • location.pathname:获取当前 URL 中的路径部分。
  • location.pathname.match(/\.html$/):检查当前路径是否以 .html 结尾。
  • location.pathname.replace(/\.html$/, ''):将当前路径中的 .html 替换为空字符串。

通过添加以上代码,您可以在不更改服务器配置的情况下,实现从静态页面的 URL 中删除 .html 扩展名的操作。

总结

本文介绍了两种方法来删除静态网站 URL 中的 .html 扩展名。其中,第一种方法需要在服务器端使用 Rewrite 模块;第二种方法则是在纯前端的场景下使用 JavaScript 实现。您可以根据具体的需求,选择适合自己的方法。