Php 如何用我的页面标题重写url

Php 如何用我的页面标题重写url,php,.htaccess,Php,.htaccess,我的网页是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)){ $t

我的网页是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';
    }
我有$title,但我不知道如何在mod rewrite in.htaccess中使用它来获取url www.mysite.com/book-title.html


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

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

RewriteEngine On
RewriteRule ^(.*)\.html$ more.php?book=$1
并确保您的PHP脚本用于避免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();

请告诉我这是示例代码,而不是真正的代码,或者您已经具备SQL注入的条件—仅此示例。感谢您的关注:)我的URL编码版本是唯一的,但我有一个问题,我在htacces中传递$title的值。我的网页生成了www.mysite.com/more.php?book=1…2…3…4。。。在页面中,我创建了一个用户友好的url web-title.html,它的变量是$title。问题是如何替换www.mysite.com/more.php?book=1…2…3…4。。。使用www.mysite.com/book-title.htmlin代替在URL中传递图书ID,您可以传递书名(这样看起来像
/book title.html
)。您所要做的就是在MySQL中搜索图书标题,而不是ID。请查看我代码中的语句,并根据图书标题栏进行更改。非常感谢你。