删除ID和?从url到url seo友好

时间:2014-01-20 08:29:27

标签: php .htaccess

我试图设置网址以使其更友好。

我有一个脚本显示一些这样的网址..

http://example.com/article.php?id=3456/AnimaliaKingdom.html

我正试图让网址看起来像这样

http://example.com/article/3456/AnimaliaKingdom.html

http://example.com/article/AnimaliaKingdom-3456.html

http://example.com/article/AnimaliaKingdom/3456.html

在我的.php文件中,我在标题

处使用此位置
header(“Location: article.php?id=$id/$row[name].html”);

这是代码的一部分

$res = SQL_Query_exec("SELECT article.id,article.name WHERE article.id = $id");
$row = mysql_fetch_assoc($res);

if ($_GET["hit"]) {
     SQL_Query_exec("UPDATE article SET views = views + 1 WHERE id = $id");
         header("Location: article.php?id=$id/$row[name].html");
die;
}

这是我使用的重写规则

RewriteEngine On
RewriteRule ^article/(.*?)$ /article.php?id=$1 [L]

我已使用上述重写规则重定向路径,但它似乎无法正常工作..

我已经尝试了一些类似的问题,但似乎没有让他们中的任何人工作......谢谢..

1 个答案:

答案 0 :(得分:1)

你必须在某个网址类中建立你的链接:

<?php
class Url {
    public function link($type, $id, $seo) {
        return "/$type/$id--$seo.html";
    }
}

$url = new Url();
$link_article = $url->link('article', 100, 'friendly-text');
?>
<!DOCTYPE html>
<html>
    <head>
        <title>testing</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script src="jquery.js" type="text/javascript"></script>
    </head>
    <body>
        <a href="<?php echo $link_article; ?>">Article 100</a>
    </body>
</html>

然后用rewriterule将它们重定向到脚本,如下所示:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(\w+)/(\d+) $1.php?id=$2&%{QUERY_STRING} [L]