【问题标题】:Strange URL behaviour [closed]奇怪的 URL 行为 [关闭]
【发布时间】:2012-11-03 16:50:40
【问题描述】:

我想知道这些天网站如何管理他们的内容和 AJAX 调用。

Facebook 为何能够拥有如下网址: http://www.facebook.com/zuck

zuck 结尾不带 / http://www.facebook.com/zuck/

这显然非常方便,因为他们实际上不需要创建名为 zuck 的子目录。

我也注意到像http://hypem.com/popular 这样的地方也在这样做。对他们来说很方便,因为他们可以不间断地运行媒体播放器,而且他们不需要在 URL 中添加 #。

【问题讨论】:

  • 答案是.htaccess URL重写
  • URL 不必映射到文件干! zuck/ 不必是某处的目录。有些应用程序使用 URL 并将其映射到文件系统,有些则没有(使用 Ruby on Rails 及其 map.resources。)而且我不明白你到底为什么会认为尾部斜杠 #,与否与流畅的媒体播放有关! :)

标签: html ajax url url-rewriting


【解决方案1】:

这种 URL 主要使用 .htaccess 文件中的 Apache 重定向规则,您会看到类似 domain.com/example 但在后端它实际上是指将其重定向到类似的东西

domain.com/subdirectory/maybe-anotherone/example.php

所以他们不希望用户看到他们系统的确切模式。

【讨论】:

    【解决方案2】:

    这是URL rewrite 功能。

    可能有各种实现,但基本上它是由网络服务器完成的在 HTTP 堆栈或更高版本中定义)。

    所以服务器内部的http://www.facebook.com/zuck 相当于http://www.facebook.com/profile.php?id=zuck(或类似的东西)。

    【讨论】:

      【解决方案3】:

      它被称为 nice-url 或 URL-Rewrite。

      你可以遍历到index.php的所有请求,在那里你可以通过PHP中的$_SERVER['REQUEST_URI']来处理它。

      您需要在站点的根目录下创建一个名为 .htaccess 的文件。这是我正在使用的代码,它将图像、图标和其他一些资源排除在范围之外:

      <IfModule mod_rewrite.c>
          RewriteEngine On
          RewriteBase /
          RewriteCond %{REQUEST_URI} !^/phpmyadmin/
          RewriteRule !\.(ico|gif|jp?g|png|pdf|doc?|xls?|ppt?)$ index.php [L]
      </IfModule>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-16
        • 2017-01-02
        • 1970-01-01
        • 2017-01-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多