Php 不带';的页面id';在URL中
我见过一些网站,不同的页面是通过一个页面id访问的,而这个id不是通过get方法传递的 比如说: 我经常在其他网站上看到: 我知道示例1的不同页面存储在数据库中,而不是像它所建议的那样存储在不同的文件夹中 通常,如果你有一个正斜杠,这意味着你要浏览不同的文件夹 有人能告诉我如何创建正斜杠页面id指示器,而不必为不同的页面创建数百个不同的文件夹吗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”方法
因此,只需“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;