instagram.com如何传递用户名变量,例如“instagram.com/username”或类似
instagram.com/floydmayweather
不使用$_GET
功能,但看起来并不像这样
的Instagram /的index.php?用户名=弗洛伊德·梅威瑟
答案 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