使用无扩展名的网址有哪些优势?

时间:2010-01-31 06:01:42

标签: php asp.net xhtml seo sitecore

使用无扩展名网址有哪些优势?

例如,我为什么要改变......

http://yoursite.com/mypage.html
http://yoursite.com/mypage.php
http://yoursite.com/mypage.aspx

为...

http://yoursite.com/mypage

是否可以为每个页面提供无扩展名的网址?

更新

无扩展网址是否更适合网站安全?

6 个答案:

答案 0 :(得分:27)

无扩展URL的原因是它与技术无关。如果您想要更改内容的呈现方式,则无需更改URL。

W3: Cool URIs don't change

文件扩展名

这是一个非常常见的问题。 “cgi”,甚至“.html”都会改变。您可能在20年后没有在该页面上使用HTML,但您可能希望今天的链接仍然有效。链接到W3C站点的规范方式不使用扩展....

结论

保持URI以便它们仍然在2年,20年或200年甚至2000年左右,显然不是听起来那么简单。然而,在整个网络上,网站管理员正在做出决定,这将使自己在未来变得非常困难。通常,这是因为他们正在使用工具,其任务被视为在当下呈现最佳网站,并且没有人评估当事情发生变化时链接会发生什么。但是,这里的消息是,很多很多东西都可以改变,你的URI可以而且应该保持不变。他们只有在你考虑如何设计它们时才能做到。

答案 1 :(得分:8)

这主要是出于审美目的。

有一个非常小的潜在安全优势(用户不会立即知道后端代码写入的语言),但这可以忽略不计。

相关的blog post

答案 2 :(得分:5)

人们声称它可以提供更好的搜索引擎优化,即使我个人并不相信。许多客户现在都要求使用这些无扩展名的URL,因此它也可以很容易地实现。

如果您运行的是IIS 7,则可以将AppPool切换为在Integrated Pipeline上运行,从而无需将特定扩展映射到ASP.NET引擎。完成后,您可以指示Sitecore在web.config设置中使用无扩展名网址(假设Sitecore 6):

<linkManager defaultProvider="sitecore">
  <providers>
    <clear />
    <add name="sitecore" type="Sitecore.Links.LinkProvider, Sitecore.Kernel" 
         addAspxExtension="false"    /* This one is set to true, per default */
         alwaysIncludeServerUrl="false" 
         encodeNames="true" 
         languageEmbedding="asNeeded" 
         languageLocation="filePath" 
         shortenUrls="true" 
         useDisplayName="false" />
  </providers>
</linkManager>

你已经定下来了。

请注意,早期版本的Sitecore 6在运行集成管道时存在一些问题。可以找到更多信息here

答案 3 :(得分:4)

如上所述,其中一个优点是您不会将URLS与特定技术或语言联系起来。此外,其中一个优点是,如果您愿意,可以从应用程序中管理输出格式。

但这仅在“路由”代码框架中相关,您将基本上将url路由附加到代码。

例如,在我的代码库中,您可以通过

指定网址的允许输出格式

1)在HTTP标头中设置Accept标头 2)附加URL的有效扩展名

因此/my/simple/url.html,/my/simple/url.xml和/my/simple/url.json的代码完全相同。输出管理员将负责以适当的方式输出内容。

因此,如果您更改基础技术,您仍然可以在新版本的应用程序中保留相同的URL模式。

从那里开始,由于您使用自己的代码解析URL以提取数据,因此它通常使您有机会制作SEO友好的URL,即在搜索引擎索引方面更有意义的URL。然后,您可以在Web应用程序结构中定义更有意义的URL模式。

答案 4 :(得分:0)

我能想到的只是让最终用户更容易记住/打字,除此之外我没有看到任何理由,我也是由我们的管理员运行这个,他说有些人说SEO但是如果他如果要使用它,他会在安全的情况下使用它。

答案 5 :(得分:0)

因为用户不需要了解页面背后的技术。 示例:domain.com/Programs/Notepad