【问题标题】:PHP get QUERY_STRING after '/'PHP 在 '/' 之后获取 QUERY_STRING
【发布时间】:2012-07-27 14:41:44
【问题描述】:

我有我的域名,我想从这样的 URL 获取查询:http://domain.com/querystring,然后输出将是:querystring

这与 bit.ly 和 Facebook 用于个人资料页面的技术相同。我必须在我的 .htaccess 文件中做些什么吗?还是有一个普通的PHP命令可以这样做..我认为它会重写某种.htaccess URL,但我只想知道是否有其他选项。

【问题讨论】:

标签: php .htaccess get pdo query-string


【解决方案1】:

对于 Facebook 示例: www.facebook.com/profile.php?id=####

然后使用 mod_rewrite 看起来像www.facebook.com/username

但要获得username,代码是:

$_GET['id'];

Facebook 在其数据库表中引用了idusernames

【讨论】:

  • RewriteEngine On RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1 RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1 这是我的 .htaccess 代码。我需要输入一个点 . 。怎么做?这是否像正常的正则表达式一样工作?
【解决方案2】:

如果您只想使用部分 URI 进行查询,您可以像这样从 $_SERVER 超全局获取整个 URI,然后将其拆分以获得您可能需要的任何部分

$uri = $_SERVER['REQUEST_URI'];
$pieces = explode("/", $uri);
$myQuery = $pieces[1];

【讨论】:

    【解决方案3】:

    我假设您使用的是网络服务器,例如 Apache,index.php 是您的控制器。

    启用 mod_rewrite,然后在根目录(或您的 vhost 定义)中配置一个 .htaccess 文件。

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]
    

    然后使用$_SERVER['QUERY_STRING']

    检查$_SERVER 超全局。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-22
    • 2013-10-02
    • 2015-08-22
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    相关资源
    最近更新 更多