如何用传递的 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 :
例子.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 重写的真正工作原理,这里有几个可能有用的链接: