我试图设置网址以使其更友好。
我有一个脚本显示一些这样的网址..
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]
我已使用上述重写规则重定向路径,但它似乎无法正常工作..
我已经尝试了一些类似的问题,但似乎没有让他们中的任何人工作......谢谢..
答案 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]