Php 不带';的页面id';在URL中

Php 不带';的页面id';在URL中,php,database,variables,url-routing,Php,Database,Variables,Url Routing,我见过一些网站,不同的页面是通过一个页面id访问的,而这个id不是通过get方法传递的 比如说: 我经常在其他网站上看到: 我知道示例1的不同页面存储在数据库中,而不是像它所建议的那样存储在不同的文件夹中 通常,如果你有一个正斜杠,这意味着你要浏览不同的文件夹 有人能告诉我如何创建正斜杠页面id指示器,而不必为不同的页面创建数百个不同的文件夹吗 因此,只需“sitefolder”中的一个php页面,它通过通过URL传递的页面id、页面名称或URL别名来调整其内容,而无需使用“?id=12”方法

我见过一些网站,不同的页面是通过一个页面id访问的,而这个id不是通过get方法传递的

比如说: 我经常在其他网站上看到:

我知道示例1的不同页面存储在数据库中,而不是像它所建议的那样存储在不同的文件夹中

通常,如果你有一个正斜杠,这意味着你要浏览不同的文件夹

有人能告诉我如何创建正斜杠页面id指示器,而不必为不同的页面创建数百个不同的文件夹吗


因此,只需“sitefolder”中的一个php页面,它通过通过URL传递的页面id、页面名称或URL别名来调整其内容,而无需使用“?id=12”方法。

您可以使用
.htaccess
规则并启用
mod\u rewrite
,如下所示:

RewriteEngine On
RewriteRule ^/([^/]+)$  index.php?id=$1
这将把
example.com/12
重写为
example.com/index.php?id=12

编辑:正则表达式,细分为:

  • ^
    匹配行首
  • /
    匹配斜杠
  • ([^/]+)
    匹配并保存 第一组不是斜杠的字符
  • $
    匹配行尾

对于
RewriteRule
RegEx,“行”表示
example.com

是的,通常“/”表示转到下一个文件夹。。但有时你也可以根据自己的需要定制url结构

您需要为此启用url重写。 这可以使用.htaccess规则实现,如

RewriteEngine On
RewriteRule ^([^/.]+)(/([^/.]+))?(/([^/.]+))?$ index.php?page=$1 [L,QSA]
或者您可以拥有自己的定制mvc,在这种情况下,您可以修改url以使用“/”处理参数 乙二醇

这意味着让我们有url
”http://domaintest/controller/method/page/1";


然后这里的页面参数值将是1

搜索“URL重写”,您正在寻找
重写规则
,如果您使用的是Apache,您需要修改重写,这里有许多问题和常见示例。其他示例和教程可能称为“漂亮的URL”或“干净的URL”谢谢!我一定会调查的。你能再解释一下^/([^/]+)$部分吗?
       $request_url = $_SERVER['REQUEST_URI'];        
       $url         =  str_replace(LOCAL_PATH,"",$request_url);        
       $parameters   = explode("/",$url);

       if($_SERVER['HTTP_HOST']!='localhost')
       {
         $total = count($parameters)-1;
         unset($parameters[0]);        
         unset($parameters[1]);
         unset($parameters[2]); 
       }       
       $slipt = array_chunk($parameters, 2);
       $response = array();
       foreach($slipt as $val)
       {
          if( isset($val[1]) )
            $response[$val[0]] = $val[1];
       }         
      return $response;