0

我正在用 php/mysql 制作一个带有自定义 cms 的网站。

它的布局如下:

MYSQL数据库 表名id、标题、描述、关键字、内容

CMs 连接数据库,列出表的内容 获取 id 编辑标题、描述、关键字、内容 保存回数据库

网站 连接到数据库,其中 title=home

php页面示例

<?php //connect to database ?>
<html>
<title><?php echo $title;?></title>
<meta name="description" content="<?php echo $description; ?>" >
<meta name="keywords" content="<?php echo $keywords; ?>" >
<body>
<?php echo $content; ?>
</body>
<?php include_once("footer.php"); ?>

所以想法是连接到页面并提供标题,然后连接到数据库,从表中检索适当的行并显示页面,例如:

http://www.mysite.com/index.php?title=home

将显示网站的主页。

有没有办法从 url 中删除index.php?title=并仍然传递变量,所以用户会访问http://www.mysite.com/home

我认为有通过编辑 .htaccess 文件,但我不确定?

4

1 回答 1

2

您可以使用 mod_rewrite 来完成。把它放在你的 .htaccess 中:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?title=$1 [L]

这些行会将http://www.mysite.com/varhttp://www.mysite.com/var/等每个 url 重定向到http://www.mysite.cm/index.php?title=var

此重定向将是透明的。

我建议您查看一些有关 URL 重写和 mod_rewrite 的文档,以最好地理解这些行,并能够自己制作。

于 2012-07-25T15:59:43.510 回答