.htaccess mod_rewrite创建干净的URL

时间:2012-06-15 20:21:18

标签: php .htaccess mod-rewrite

我有一个数据驱动的网站,它传递信息以确定下一页应该使用$ _GET参数显示的内容。

我希望网址看起来更漂亮,结构简单。

我一直在阅读关于mod_rewrite但是到目前为止未能实现它。

<?php $post = $_GET['ID']; ?>
<?php $loca = $_GET['loca']; ?>

这是从URL中获取的,以确定我们想要的表和帖子ID。目前的网址为index.php?ID=4&loca=Pages

如果相反,我将如何使这项工作。 /pages/(the name column of the post of this ID)

2 个答案:

答案 0 :(得分:0)

这应该进行内部重写:

RewriteEngine On
RewriteRule ^pages/(\d+)/ /index.php?ID=$1&loca=pages

它会将以pages/(some number)/开头的任何网址重写为结果。如果网址不完全是/pages/id/(Name that matches id)/,您应该添加一些服务器端逻辑来执行302重定向。您可以使用$_SERVER['REQUEST_URI']获取字符串,然后将其与应该的字符串进行比较,如果不匹配则执行重定向。

就像你去:https://stackoverflow.com/questions/11057691/This+is+not+the+title

一样

您将被重定向到具有正确标题的版本。您还应该更新站点周围的链接以使用新的URL格式。

答案 1 :(得分:0)

在Google上有很多如何执行此操作的示例。

教程:http://wettone.com/code/clean-urls

Mod_rewrite:http://httpd.apache.org/docs/current/mod/mod_rewrite.html