【问题标题】:structure of url网址的结构
【发布时间】:2011-10-16 11:22:46
【问题描述】:

我在很多网站上见过,网址的结构是这样的

http://tabsize.com/user/login

http://tabsize.com/user/register

http://tabsize.com/user/account

来自用户->登录或用户->注册

那么如何维护这种 URL 结构呢?

我目前正在使用硬编码类型的 URL,例如,

www.example.com/login.php

www.example.com/register.php

我觉得我的方式不专业,我也希望能够创建与上面示例中给出的相同的结构。

你是怎么做到的?

【问题讨论】:

  • 您需要连接到网络服务器来实现这一点。你用的是什么网络服务器?阿帕奇?
  • 你使用了 Apache 的 ModRewrite 能力。
  • 这在 SO 上已被多次询问。这在很大程度上取决于您的服务器配置和您的代码。请use the search 环顾四周,因为对于您当前的问题,答案只是猜测。您需要添加您设计网站的方式、输出 URL 的方式、服务器配置以及所有这些内容。

标签: php url


【解决方案1】:

最简单的方法是使用文件夹和索引文件:

http://tabsize.com/user/register
->http://tabsize.com/user/register/index.php

http://tabsize.com/user/account
->http://tabsize.com/user/account/index.php

【讨论】:

  • 我也想过这个问题,但是对于添加到该站点的每个用户,都会创建一个新的配置文件。 tabsize.com/profile/143是怎么做到的?
  • @user478636 .htaccess mod_rewrite。您基本上将/profile/143 之类的网址映射到profile.php?id=143 之类的网址
【解决方案2】:

我个人使用这个网站,它有很多帮助: http://www.generateit.net/mod-rewrite/

【讨论】:

    【解决方案3】:

    我认为您在许多网站上看到这种结构的主要原因是因为它们使用framework

    大多数时候,user 对应一个模块,login 对应一个动作。如果你的应用程序足够大,你应该考虑using a framework

    【讨论】:

      【解决方案4】:

      您需要通过您的 index.php 文件进行所有请求。这样您就可以在路径上执行查找并选择一个函数来返回响应。

      例如。

      index.php?uri=/user/login/
      

      然后在你的 index.php 文件中执行查找

      <?php
      
      $uri = $_GET["uri"];
      
      if ($uri == "/user/login/") {
        print "login page";
      }
      else if ($uri == "/something/else/") {
        print "some other page";
      }
      

      这种方式不可维护,我不推荐它,但你明白了。

      然后在你的 .htaccess 中你想删除 index.php?uri=

      RewriteRule .* index.php?uri=$0 [PT,QSA,L]
      

      现在这样的 URL 可以使用 http://example.com/user/login/

      我建议研究已经有解决方案的 PHP 框架。 CodeIgniter 和 Kohana 都不错。

      如果你了解 Python,也可以使用 Django。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-20
        • 2013-03-23
        • 2013-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-05
        相关资源
        最近更新 更多