基本上,我想要的是:
例如,我有一个如下所示的网址:
example.com/stories/show.php?id=$id
我希望该网址看起来像这样
example.com/stories/$id/$title
我希望标题看起来像这样:
我喜欢stackoverflow 到
I-爱计算器
用短划线分隔每个单词。
我是否应该将标题与ID一起传递?
例如 example.com/stories/show.php?id=$id&title=$title
我如何用.htaccess实现这一切?
stackoverflow使用了我想要做的一个很好的例子。检查这个问题的URL。
答案 0 :(得分:1)
您只需要一些简单的规则,例如下面的示例
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
现在你应该可以重写一个网址:
http://example.com/stories/666/stack-overflow
为:
http://example.com/stories/show.php?id=666&title=stack-overflow
然后您可以通过以下方式创建链接:
<?php
// php example
$title = "I love stackoverflow";
$id = 666;
?>
<a href="http://example.com/stories/<?php print $id . '/' . str_replace(' ', '-', $title); ?>">link</a>
我认为你应该读一下url重写是如何工作的,这里有几个可能有用的链接: