2013-02-24 46 views
2

我有网页www.mysite.com/more.php?book=1 我想创建链接,如www.mysite.com/book-title.html 我怎么能去做?如何我可以用我的页面标题重写网址

在我的网页www.mysite.com/more.php?book=1我生成的URL像这样

$res = mysql_query("SELECT * FROM book WHERE id_book={$_GET['book']}"); 
while ($rw = mysql_fetch_object($res)){ 
    $title = strtolower(str_replace(" ", "-", $rw->title)).'.html'; 
    } 

,我有$冠军,但我不知道我怎样才能在国防部重写使用在.htaccess获取网址 www.mysite.com/book-title.html

我希望我能够解释我想做什么。提前致谢。

+0

请告诉我这是示例代码,而不是真正的代码或者你SQL注入成熟 – steveo225 2013-02-24 13:56:46

+0

仅限此示例。感谢您的关注:) – BCM 2013-02-24 14:02:47

回答

2

您需要确保您的帖子标题(即URL编码版本)是唯一的。然后,您可以设置您的.htaccess使用mod_rewrite:

RewriteEngine On 
RewriteRule ^(.*)\.html$ more.php?book=$1 

,并确保你的PHP脚本使用PDO避免SQL注入:

$db = new PDO('mysql:dbname=my_db;host=127.0.0.1', 'user', 'password'); 
$statement = $db->prepare("select * from book where BOOK_NAME = :book"); 
$statement->execute(array(':book' => $_GET['book'])); 
$row = $statement->fetch(); 
+0

我的URL编码版本是唯一的,但我有一个问题,我传递$ title在htacces中的值。我的网页已生成www.mysite.com/more.php?book=1...2...3......... ... 在页面中,我创建了一个用户友好的URL web-title.html,它是变量$ title 问题是如何用www.mysite.com/book-title取代www.mysite.com/more.php?book=1...2...3...4 ... 。 html – BCM 2013-02-24 14:26:36

+0

您可以传入标题(使其看起来像'/ book-title.html'),而不是在URL中传递Book ID。您只需在MySQL中搜索书名,而不是ID。看看我的代码中的声明,并根据书名 – hohner 2013-02-24 14:40:52

+0

的列进行更改。我明白了。非常感谢你。 – BCM 2013-02-24 14:51:35

相关问题