Php 来自数据库的漂亮URL
我正在尝试在我的网站上获取漂亮的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
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
)