我已经搜索了这个问题的答案已经找到一篇文章,但它并没有给出确切的答案。这可以在这里找到:PHP - How can I replace dashes with spaces?搜索引擎优化友好的URL和查询数据库php
我使用这个功能到我的博客标题转换成搜索引擎友好的URL字符串:
//SEO Friendly URLS
public static function Seo($input){
$input = str_replace(array("'", "-"), "", $input);
$input = mb_convert_case($input, MB_CASE_LOWER, "UTF-8");
$input = preg_replace("#[^a-zA-Z0-9]+#", "-", $input);
$input = preg_replace("#(-){2,}#", "$1", $input);
$input = trim($input, "-");
return $input;
}
将转换标题像这样“我的博客标题”到“我的-博客-title“,这很好。不过,我通常在URL中传递博客ID以从数据库中获取博客,但我试图保留真正友好的URL。
我知道我可以将博客ID作为第二个查询字符串传递给标题末尾,例如mysite.com/page.php?post=my-blog-post & id = 1但仍然看起来很糟糕。我将使用.htaccess删除.php和'?'来自网址,但我不确定如何在传递ID时保留一个漂亮的URL。
如何在使用博客标题作为URL查询时查询数据库?
你总是可以用一个半题为结构去(这仍然是搜索引擎友好) 示例: http://site.com/my-blog-title/234/ 其中,234是条目ID。 – 2013-02-14 03:21:03
不能让你的网址是'example.com/id/title'例如:'example.com/1/my-blog-title'和'explode('/'$ input)' – Class 2013-02-14 03:21:16
感谢理查德,我想我没有'甚至想到这一点。我会放弃这一点。我只是想,因为我看到很多博客都这样做,这样做有一个更简单的方法。 – 2013-02-14 03:24:04