使用mod重写来使用没有查询字符串的URL

时间:2015-07-22 15:19:05

标签: php apache .htaccess mod-rewrite

我正在尝试使用mod rwerite,但我简直无法弄明白......

我理解的方式如下:

当用户点击此<a href="/contents/folder/somepage_17">Linktext</a>之类的链接时,我应该能够让服务器相信我想要/contents/folder/somepage.php?id=17,然后通过某个页面中的$_GET访问查询字符串.php文件,对吧?

如果是这样,我如何将其置于mod重写语法中?另外,我的页面中有很多名称都有破折号的页面,所以我会有很多这样的网址this-is-a-page_19

目前,我的所有网址都已包含查询字符串(例如/abc/de/page.php?id=12),但我想让URRL没有查询字符串。但是,我需要某种信息,正在调用哪个页面,因为我随后访问数据库以获取有关该页面的一些信息(标题,关键字,描述......)。

非常感谢!

1 个答案:

答案 0 :(得分:2)

这可能有效

RewriteEngine On
RewriteBase /
RewriteRule ^contents/folder/somepage_([0-9]+)$ /contents/folder/somepage.php?id=$1 [NC,L]

然后您可以使用$ _GET ['id']

访问GET var