【问题标题】:Special profile page link like www.domain.com/username特殊的个人资料页面链接,例如 www.domain.com/username
【发布时间】:2011-01-15 13:56:34
【问题描述】:

大家好,我有一个问题。我想为每个新用户创建一个个人资料页面,我注意到在 facebook 上你可以简单地输入 www.facebook.com/username 并进入用户页面,我的问题是,如果没有类似域的东西我怎么能做到这一点.com/users.php?useraname="username" 或类似的东西?我怎样才能让它像 facebook 一样简单?

【问题讨论】:

标签: php


【解决方案1】:

您正在寻找的是 mod_rewrite。这将允许您编写在最终用户看来是服务器上的目录的 PHP 代码(例如 www.facebook.com/user.php?username 到 www.facebook.com/username。)

可以在此处找到使用 PHP 对它们的介绍:http://wettone.com/code/clean-urls

请注意,您需要在您的服务器上启用它。如果您正在运行 Apache 服务器,则应该可以在 .htaccess 文件中执行此操作。

【讨论】:

  • 这是正确的吗?重写规则 ^([a-z]+)$ /users.php?username=$1 [L]
【解决方案2】:

这不是一个完整的答案,因为我不是 php 人

你正在寻找一个 RESTful url,如果你使用支持 RESTful url 的框架,大多数情况下你可以在你的 web 应用程序上获得类似的 url

查看这个 SO 问题:
REST-style URLS and PHP

见这篇文章:
http://blog.garethj.com/2009/02/building-a-restful-web-application-with-php/

Search googleSearch SO with google

【讨论】:

    【解决方案3】:

    仅使用 PHP 无法做到这一点。 Web 服务器首先需要知道如何处理此类请求。

    因为,简单地说,Web 服务器只是接收请求并尝试将其映射到文件根目录下的文件系统中的文件上。如果找不到合适的文件,则返回 404 错误代码。

    现在几乎每个网络服务器软件都有某种URL rewriting 机制。如果 Apache 是最流行的 Web 服务器软件,mod_rewrite 允许基于规则重写 URL。在这种情况下,以下内容可以使/users.php?username=username 也可以通过/username 访问:

    RewriteEngin on
    RewriteRule ^[a-z]+$ index.php?username=$0
    

    【讨论】:

      【解决方案4】:

      选项 +FollowSymLinks
      重写引擎开启
      RewriteBase /php/profile RewriteCond %{SCRIPT_FILENAME} !-d
      RewriteCond %{SCRIPT_FILENAME} !-f
      RewriteRule ^users/(.)$ ./profile.php

      http://exapmle.com/users/waqar.alamgir

      在 $_SERVER['REQUEST_URI'] 你会看到 users/waqar.alamgir

      【讨论】:

        猜你喜欢
        • 2014-05-10
        • 1970-01-01
        • 2022-10-17
        • 1970-01-01
        • 2022-01-15
        • 1970-01-01
        • 2021-07-01
        • 1970-01-01
        • 2014-10-09
        相关资源
        最近更新 更多