URL变量发送和接收

时间:2013-08-16 22:57:06

标签: php html html5 .htaccess

instagram.com如何传递用户名变量,例如“instagram.com/username”或类似

  

instagram.com/floydmayweather

不使用$_GET功能,但看起来并不像这样

  

的Instagram /的index.php?用户名=弗洛伊德·梅威瑟

2 个答案:

答案 0 :(得分:0)

在HTTP服务器中使用URL rewrite命令。 Apache和nginx都有很多例子。

重写规则在命中代码之前在服务器级别发生。这意味着在代码收到URL之前,实际上不需要修改URL。

我这样做的方法是配置Apache / nginx将所有与现有文件不匹配的URL(以便像图像,js和css这样的静态文件仍可用)发送到我的index.php文件。然后在index.php文件中解析URL以确定要加载的页面类型和数据。

在您的示例中,他们会从URL中获取最后一个标记,知道它将是URL格式的用户名,在数据库中查找该用户并相应地构建页面。

在大多数框架中都可以使用前端控制器或URL路由器。在index.php中,我会根据其组件将每个URL映射到一个类,然后该类将处理实际的页面构建。

以下是有关重写模块的更多信息;

http://httpd.apache.org/docs/current/mod/mod_rewrite.html

http://wiki.nginx.org/HttpRewriteModule

一些快速谷歌搜索将向您展示如何配置它的许多示例。

您的index.php文件可以检查$_SERVER数组以确定已请求的URL。在这种情况下,explode()函数是您的朋友,用于解析URL并检查其组件:)

答案 1 :(得分:0)

重写引擎将是一个完美的解决方案,例如:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

重写引擎 - 重写引擎是位于Web服务器上运行的Web应用程序框架中的软件,可修改Web URL的外观。此修改称为URL重写。重写的URL(有时称为短URL,花式URL,搜索引擎友好 - SEF URL或slu)用于提供更短,更相关的网页链接。该技术在用于生成网页的文件和呈现给外部世界的URL之间添加了一层抽象。

<强>用法

而是使用扩展链接(.php / html等等)获取URL

  

www.stackoverflow.com/index.php

您将获得无扩展的网址

  

www.stackoverflow.com/index