【问题标题】:How to make a url virtual 'directory' based on unique Ids如何根据唯一 ID 制作 url 虚拟“目录”
【发布时间】:2015-05-08 16:40:56
【问题描述】:

让我们从一个例子开始:我想做 Tumblr 正在做的事情。更具体地说,每次您单击“转发”按钮时,URL 都会更改为类似 "/reblog/UNIQUEID/UNIQUEID/" 的内容。 然而,显然他们没有数以百万计的目录,每个目录都包含 html 文件。

所以我想知道,如果我想做一个类似的东西,我会怎么做? 我们可以通过 PHP GET 获取唯一 ID,然后使用 JavaScript 更改 URL 以将其显示为 "/dir/uniqueId" 而不是 "/dir?=uniqueId" 但是这似乎很麻烦。

如果我们这样做,它还会带来一个新问题:如果用户在 URL 栏中输入 "/dir/uniqueId" 怎么办...这将不起作用,因为它是经过编辑的来自 JavaScript 的字符串。


我不熟悉 htaccess,但我很确定它对答案有很大的影响。

那么,如何解决这个糟糕的 url 语法(?= 等)问题,使其看起来更像目录,但从根本上来说不是?

回顾: 在使用 PHP/htaccess 时如何使 /dir/uniqueId 工作,但 uniqueId 不是目录或实际文件

【问题讨论】:

    标签: php html .htaccess directory


    【解决方案1】:

    这是一个例子......

    .htaccess

    RewriteEngine on
    RewriteRule ^reblog/([^/\.]+)/?$ index.php?reblog=$1 [L]
    

    index.php

    if (isset($_GET['reblog'])) {
        $uniqueId = $_GET['reblog'];
    
        //Do some stuff with that $uniqueId
    }
    

    网址示例

    http://www.somesite.com/reblog/foo123bar
    

    您可以根据此示例进行构建以满足您的要求。就您现在的问题而言,它太宽泛,无法提供更具体的答案。

    【讨论】:

      猜你喜欢
      • 2011-07-08
      • 2014-08-15
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 2015-02-06
      • 1970-01-01
      • 2021-11-20
      • 1970-01-01
      相关资源
      最近更新 更多