0

我有一个 html5 网站,我的查询是当我打开任何没有 .html 扩展名的 url 时它会打开为什么?

我想要建议,这样我的所有网址都应该仅以 .html 扩展名打开。

例子。

现在 url http://www.abc.com/about-us 打开网页,我希望它应该重定向到http://www.abc.com/about-us.html 或者应该显示 404 错误。

4

4 回答 4

1

这一切都基于服务器配置。像 abc.com 这样的网站使用URL 重写使您能够输入“漂亮”的 url(如 abc.com/about-us)并被定向到相关内容。

大多数托管环境的默认配置应该只允许按全名浏览页面(即 yoursite.com/about-us.html)。

于 2012-07-30T06:06:49.050 回答
0

我只能猜测,但最有可能的是,您启用了 Apache 的 MultiView 功能(或另一个 Web 服务器上的类似机制)。此功能选择与请求 URL 匹配的多个文件之一(无扩展名),并具有一个扩展名,该扩展名映射到客户端通过Accept标头请求的 MIME 类型。因此,例如,如果您同时拥有foo.txtfoo.html在您的 docroot 中,并且客户端 requests /foo,一个Accept标头会说text/plainyield foo.txt,而text/html会给你foo.html.

预期用途是 Apache 可以根据不同的浏览器功能为不同的文件提供不同的文件:例如,您可以拥有同一图像的 PNG 和 GIF 版本,而 Apache 提供浏览器表示它可以处理的任何内容。

在正常情况下,您希望禁用 MultiViews,因为(尤其是当您正在执行服务器端脚本时,例如 PHP)它可能会导致不希望的(有时是令人费解的)结果。

顺便说一句,这种机制与 HTML(4、5、XHTML 或其他)完全无关 - 您将看到图像文件、视频、样式表、纯文本等任何东西的相同行为。

于 2012-07-30T06:13:09.273 回答
0

一个可能的原因是url 重写。在.htaccess文件中,您可以编写不同的规则和条件,通过这些规则和条件,页面扩展名将不会出现在浏览器上。

例如:http ://roshanbh.com.np/2008/03/url-rewriting-examples-htaccess.html

于 2012-07-30T06:13:20.337 回答
0

这是一种称为URL 重写的技术,它可以将难看的 URL 变成漂亮的 URL——比选择一个好的域名要少得多的痛苦和费用。它使您能够使用友好、易读的关键字填写 URL,而不会影响页面的底层结构。

许多网络公司花费数小时为他们的客户寻找最好的域名。他们试图找到一个相关且合适、听起来专业但又与众不同、易于拼写、记忆和通过电话阅读、在名片上看起来不错并且可以作为 .com 使用的域名。

否则,他们会花费数千美元购买他们真正想要的,而这恰好在 1998 年被一个具有远见且难以找到的擅自占地者登记。

他们经历了域名的所有麻烦,但忽略了 URL 的其余部分,即域名之后的元素。它也应该是相关的、适当的、专业的、令人难忘的、易于拼写和阅读的。出于同样的原因:吸引客户并提高搜索排名。

于 2012-07-30T06:16:53.657 回答