如何使PHP类别像CMS

时间:2014-03-16 20:38:23

标签: php .htaccess mod-rewrite

我刚开始学习PHP并且我试图制作一个基本的cms,问题是我不知道如何让网址mysite.com/cat1显示类别1的文章,我通常使用mysite.com?cat=cat1然后:

if(isset($_GET['cat']))
{
  $articles=mysql_query("select * from articles where cat=".$_GET['cat']);
}
else
{
  $articles=mysql_query("select * from articles");
}

但我认为mysite.com/cat1会更好,更安全,我也会使用$_GET作为页面。

2 个答案:

答案 0 :(得分:2)

.htaccess

创建mysite.com/.htaccess个文件

.htaccess文件的内容应为:

RewriteEngine On
RewriteRule ^cat([0-9]+)$ /cat$1.php [L]

mysite.com/file.php的内容:

<?php
if(isset($_GET['cat']))
{
  echo $_GET['cat'];
}
else
{
  echo "GET is not set";
}
?>

现在,如果你关注mysite.com/cat1,输出将是:

1

它也适用于mysite.com/cat123等。

参考:

Apache mod_rewrite Introduction(参见&#34;图1&#34; in&#34; Regex Back-Reference Availability&#34;部分)

答案 1 :(得分:0)

您需要使用mod_rewrite(如果在Apache上)和/或IIS的一些预制解决方案(如果在Windows上)将请求重定向到将处理路由的单个(或多个)点(通常是路由器)脚本纠正页面或提取正确的数据。

您可能需要查看此文章creating clean urls