如何用传递的 id 和 title 重写 url

How to rewrite a url with id and title passed

基本上,我想要的是:

例如,我有一个看起来像这样的 url :

例子.com/stories/show.php?id=$id

我希望 url 看起来像这样

示例。com/stories/$id/$title

我希望标题看起来像这样:

我喜欢 Whosebug

I-love-Whosebug

用破折号分隔每个单词。

我应该把标题和 ID 一起传递吗??

例如例子.com/stories/show.php?id=$id&title=$title

我如何使用 .htaccess 实现这一切??

Whosebug 使用了我想做的一个很好的例子。检查这个问题的 url。

您只需要像下面示例中的一些简单规则

RewriteEngine on
# rewrite stories/<id>/<title> to show.php
RewriteCond %{REQUEST_URI} stories/([0-9]+)/([a-z\-A-Z]+)
RewriteRule (.*) show.php?id=%1&title=%2 [L]

将以上内容放入您的 .htaccess 文件中,该文件应位于 stories 文件夹下。当然,您还需要确保在您的服务器上启用了 rewrite 模块。这可以通过 运行 从终端执行以下命令来完成:

sudo a2enmod rewrite
sudo apachectl restart

现在你应该可以重写一个 url 像:

http://example.com/stories/666/stack-overflow

至:

http://example.com/stories/show.php?id=666&title=stack-overflow

然后您可以按以下方式创建链接:

<?php
// php example
$title = "I love Whosebug";
$id = 666;
?>
<a href="http://example.com/stories/<?php print $id . '/' . str_replace(' ', '-', $title); ?>">link</a>

我认为您应该了解 url 重写的真正工作原理,这里有几个可能有用的链接:

URL Rewriting for Beginners
URL Rewriting Guide