搜索引擎优化友好的URL';s和查询数据库php
我已经搜索了这个问题的答案,找到了一篇与之相关的文章,但没有给出确切的答案。可以在这里找到: 我正在使用此功能将我的博客标题转换为SEO友好的URL字符串:搜索引擎优化友好的URL';s和查询数据库php,php,url,mod-rewrite,url-rewriting,slug,Php,Url,Mod Rewrite,Url Rewriting,Slug,我已经搜索了这个问题的答案,找到了一篇与之相关的文章,但没有给出确切的答案。可以在这里找到: 我正在使用此功能将我的博客标题转换为SEO友好的URL字符串: //SEO Friendly URLS public static function Seo($input){ $input = str_replace(array("'", "-"), "", $input); $input = mb_convert_case($input, MB_CASE_LOWER, "UTF-8"
//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;
}
这将把像“我的博客标题”这样的标题转换成“我的博客标题”,这很好。然而,我通常在URL中传递博客ID,以便从数据库中获取博客,但我试图保持真正友好的URL
我知道我可以将blog ID作为第二个查询字符串传递到标题的末尾,比如mysite.com/page.php?post=my blog post&ID=1,但这看起来仍然很糟糕。我将使用.htaccess从URL中删除.php和“?”,但我不确定如何在传递ID的同时保持一个漂亮的URL
当使用博客标题作为URL查询时,如何查询数据库?URL友好版本的标题通常被称为slug。如果将slug存储在数据库表中,则可以使用它检索文章。无论如何,最好存储段塞,这样一旦创建段塞,它就永远不会更改 例如,假设您在Seo功能中发现并修复了一个bug,它可能会更改您的URL,这显然是一个糟糕的Seo。将slug存储在数据库中可以避免这个问题
如果您存储slug,那么您可能还希望每个博客类别都有一个slug。这样,您就更接近于模仿文件系统,不再需要确保每个slug都是完全唯一的。虽然你不可能在不同的目录中拥有相同标题的文章,但在构建网站时,需要考虑一些事情。 < P> URL友好的标题版本通常被称为蛞蝓。如果将slug存储在数据库表中,则可以使用它检索文章。无论如何,最好存储段塞,这样一旦创建段塞,它就永远不会更改 例如,假设您在Seo功能中发现并修复了一个bug,它可能会更改您的URL,这显然是一个糟糕的Seo。将slug存储在数据库中可以避免这个问题
如果您存储slug,那么您可能还希望每个博客类别都有一个slug。这样,您就更接近于模仿文件系统,不再需要确保每个slug都是完全唯一的。虽然你不可能在不同的目录中拥有同一标题的文章,但在构建站点时需要考虑的事情。 你可以使用Apache的<代码> MODY-Read < /Cult>模块。这是最常见的做法 使用
.htaccess
重写规则
RewriteRule^([^?]*)index.php?路由=$1[L,QSA]
URLhttp://example.com/en/my-life/first-impression
将被“重写”并作为GET参数route
传递到index.php
在PHP中用破折号将其分解
$parts=explode('/',$\u GET['route'])代码>
这就是如何获取url的所有部分,并相应地生成PHP逻辑
$parts[0] => language code
$parts[1] => category
$parts[2] => post SEO title
您可以使用Apache的mod_rewrite
模块。这是最常见的做法
使用.htaccess
重写规则
RewriteRule^([^?]*)index.php?路由=$1[L,QSA]
URLhttp://example.com/en/my-life/first-impression
将被“重写”并作为GET参数route
传递到index.php
在PHP中用破折号将其分解
$parts=explode('/',$\u GET['route'])代码>
这就是如何获取url的所有部分,并相应地生成PHP逻辑
$parts[0] => language code
$parts[1] => category
$parts[2] => post SEO title
你可以使用半标题结构(它仍然是SEO友好的)例如:其中234是条目id。你不能使用url的beExample.com/id/title
例如:Example.com/1/my blog title
和explode('/'$input)
谢谢的Richard,我想我都没想到。我要试一试。我只是想,因为我看到很多博客都是这样做的,所以有一种更简单的方法。你可以使用半标题结构(它仍然支持SEO)例如:其中234是条目id。你不能使用url的beExample.com/id/title
例如:Example.com/1/my blog title
和explode('/'$input)
谢谢,我是Richard,我想我都没想到。我要试一试。我只是想,因为我看到这么多的博客都是这样做的,所以有一种更简单的方法。谢谢你,这是一个很好的方法来实现我想做的事情。谢谢你,这是一个很好的方法来实现我想做的事情。