我正在尝试在我的网站上获得漂亮的网址..现在,它们看起来像这样:
www.site.com/tag.php?id=1
我想将其更改为
www.site.com/tag/1/slug
我的数据库表具有ID,Title,Info,Slug
我在线阅读有关about的信息,但是对php陌生的人没有运气,任何人都可以帮我解决这个问题.
解决方法:
首先使用以下内容创建一个.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>
然后,为router.php设置以下代码:
<?php
$segments=explode('/',trim($_SERVER['REQUEST_URI'],'/'),3);
switch($segments[0]){
case 'tag': // tag/[id]/[slug]
$_REQUEST['id']=(int)$segments[1];
$_GET['id']=(int)$segments[1];
$slug=$segments[2];
require_once('tag.php');
break;
}
?>
进一步澄清
高温通行
htaccess背后的概念非常简单.无需侦听URL模式(就像旧的htaccess软件所做的那样),我们只需将所有流量重新路由,否则将导致404路由到router.php,这反过来又可以完成所需的工作.有3个重写条目;用于(符号)链接,文件和目录(/ aaa被视为文件,而/ aaa / bbb被视为文件夹)
路由器
$_SERVER [‘REQUEST_URI’]看起来像“ / tag / 1 / slug”.我们首先用多余的斜杠修剪它,然后在3个项目中将其爆炸(这样我们就不会影响子弹,它可能包含其他斜杠),$_ segments的print_ring(对于标签/ 45 / Hello / World)如下所示:
Array
(
[0] => tag
[1] => 45
[2] => Hello/World
)
最后,由于我看到您想重定向到tags.php?id = 1,因此您需要手动设置$_REQUEST [‘id’]和$_GET [‘id’]并加载tags.php.
标签:slug,php,database 来源: https://codeday.me/bug/20191102/1993350.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。