【问题标题】:How to get user friendly URLs without any file extensions? [closed]如何在没有任何文件扩展名的情况下获取用户友好的 URL? [关闭]
【发布时间】:2012-12-22 02:07:33
【问题描述】:

很长一段时间以来,我一直想知道人们如何在没有文件扩展名(例如“.html”或“.apsx”)的情况下设法让他们的 URL 正常工作。

以这个网站为例:

http://www.axongarside.com/Communication
http://www.axongarside.com/Communication/Compleat
http://www.axongarside.com/Brand
http://www.axongarside.com/Brand/K3-Group

他们是如何做到这一点的?我能想到的唯一方法是为每个页面创建一个新目录并在每个目录中都有一个索引页面,但这对于更大的网站来说将是一个巨大的麻烦。有没有其他办法?

谢谢

【问题讨论】:

  • 网址重写、ASP.NET 路由等。您的网络服务器、应用程序等使用什么样的软件?
  • 使用 URL 重写模块,看看这个问题:stackoverflow.com/questions/3039166/…
  • 这称为 URL 重写。在此过程中,您将服务器配置为在 URL 与特定模式(例如 http://example.com/products/<slug>)匹配时触发例如 product.aspx 文件。并且目录/页面不必物理存在。
  • 谢谢大家!你是一个真正的帮助

标签: html url web webserver


【解决方案1】:

如果您使用的是 Apache,您可以使用 .htaccess 文件来删除 .html 扩展名,如下所示:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301] 

要从 url 中删除 .html 扩展名,只需链接到没有 .html 的页面

<a href="http://www.mysite.com/page">linkhere</a>

【讨论】:

    【解决方案2】:

    如果您使用的是 Apache HTTP Server,您应该检查mod_rewrite 功能。 IIS 也有类似的 URL 重写功能。

    【讨论】:

      【解决方案3】:

      三种最常见的方法是:

      • 使用索引页面(即,只需创建一个目录并将index.html 文件放入其中)。
      • 使用重写引擎(例如 Apache 的 mod_rewrite)将 URL 映射到不同的文件(这是 PHP 领域的常用方法)。
      • 使用为您处理 URL 的前端控制器脚本(这是 MVC 框架的常用方法)。

      后一种方法会在 Apache 服务器配置中使用类似的东西:

      WSGIDaemonProcess example processes=2 threads=15 display-name=%{GROUP}
      WSGIProcessGroup example
      WSGIScriptAlias / /hosts/example.com/application/wsgi.py
      

      SetHandler fcgid-script
      Alias / /hosts/example/application.fcgi/
      

      对于分别使用 WSGI (Python) 或 FastCGI(跨语言,该特定示例取自我正在编写的 Perl 应用程序)的脚本。

      URL 格式将由脚本自己处理,不同的框架对问题采取不同的方法。

      在 Catalyst 中,这是由 providing attributes to subroutine names 完成的。

      Dancer 有自己的route handler syntax

      Web::Simple 使用subroutine prototypes

      Django 使用a separate file containing a list of patterns

      【讨论】:

        猜你喜欢
        • 2014-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多