Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 来自数据库的漂亮URL_Php_Database_Slug - Fatal编程技术网

Php 来自数据库的漂亮URL

Php 来自数据库的漂亮URL,php,database,slug,Php,Database,Slug,我正在尝试在我的网站上获取漂亮的URL。现在它们看起来像这样: www.site.com/tag.php?id=1 我想把它改成 www.site.com/tag/1/slug 我的数据库表有ID、标题、信息和Slug 我在网上读到了关于Slug的文章,但由于不熟悉php,我觉得运气不好,有人能帮我解决这个问题吗。试试下面的指南: //不是我的博客 或者这似乎更好: 编辑: 这是针对apache的,因为我假设这是您使用的首先创建一个带有以下内容的.htaccess文件: # Turn o

我正在尝试在我的网站上获取漂亮的URL。现在它们看起来像这样:

www.site.com/tag.php?id=1
我想把它改成

www.site.com/tag/1/slug
我的数据库表有ID、标题、信息和Slug

我在网上读到了关于Slug的文章,但由于不熟悉php,我觉得运气不好,有人能帮我解决这个问题吗。

试试下面的指南:

//不是我的博客

或者这似乎更好:

编辑:


这是针对apache的,因为我假设这是您使用的

首先创建一个带有以下内容的
.htaccess
文件:

# Turn on rewrite engine and redirect broken requests to index
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule .* router.php [L,QSA]
</IfModule>
进一步澄清

Htaccess

htaccess背后的概念非常简单。我们不需要监听URL模式(就像旧的htaccess软件那样),而是简单地将所有流量重新路由,否则将导致404到
router.php
,而这反过来又负责执行所需的操作。有3个重写条目;对于(sym)链接、文件和目录(
/aaa
被视为文件,而
/aaa/bbb
被视为文件夹)

路由器

$\u服务器['REQUEST\u URI']
看起来像
“/tag/1/slug”
。我们首先根据多余的斜杠对其进行修剪,然后将其分解为3个项目(因此我们不会影响slug,它可能包含其他斜杠),
print\r
$segments
(用于标记/45/Hello/World)如下所示:

Array
(
    [0] => tag
    [1] => 45
    [2] => Hello/World
)

最后,因为我看到您想要重定向到
tags.php?id=1
,所以您需要做的是设置
$\u REQUEST['id']
$\u手动获取['id']
并加载
tags.php

谢谢@christian Sciberas,我尝试了.htaccess和router.php。现在,当我进入标记/1/slug时,它只会将我带到router.php。我做错了什么?请确保已安装并启用apache mod_rewrite。@christian Sciberas如何手动添加$_请求['id']和$_获取['id']?谢谢
Array
(
    [0] => tag
    [1] => 45
    [2] => Hello/World
)