我刚开始学习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
作为页面。
答案 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