搜索引擎友好的 URL

Posted

技术标签:

【中文标题】搜索引擎友好的 URL【英文标题】:Search-Engine Friendly URLs 【发布时间】:2011-08-31 10:07:46 【问题描述】:

我正在构建我的第一个搜索引擎友好型 CMS。我知道拥有和 SEO 网站的最大关键之一可能是拥有。所以有这样的链接:

http://www.mysite.com/product/details/page1

将产生比这样的排名更好的排名:

http://www.mysite.com/index.php?pageID=37

我知道要创建像第一个这样的 URL,我有以下两种选择之一:

使用 Web 技术(在本例中为 PHP)来创建目录结构 利用 Apache 的 mod_rewrite 插件将这些 URL 传递给 PHP 处理器

就 PHP 而言,我对任何事情都很满意。但是,我认为第一个选项会更难维护。

有人可以告诉我如何编写.htaccess 文件,它将:

将 SEO URL 静默定向到处理器脚本 如果请求的 URL 是服务器上的实际目录,则不重定向

有没有比我尝试的更好的方法?

【问题讨论】:

这是一个很好的tutorial 关于 mod_rewrite。 【参考方案1】:

是的,第一个选项很难维护。如果要更改页面的标题,则需要重新计算 所有 个页面。

最简单的方法是创建一个名为product.phpproduct/details.php 的PHP 文件,并使用$_SERVER\['PATH_INFO'\] 变量来确定客户端请求的内容。

【讨论】:

谢谢,但这种方法的唯一问题是这些假目录结构将被即时创建,并且可能完全改变。我同意让 PHP 尝试维护会让人头疼。【参考方案2】:

你可以为 apache 使用 .htaccess,在你的 web 根文件夹中创建文件,主要是“htdocs”,命名为“.htaccess”,添加下一个内容

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %REQUEST_FILENAME !-d
    RewriteCond %REQUEST_FILENAME !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
    Options -Indexes
</IfModule>

在您的 php 文件中,您可以从 $_GET 访问数据

$_GET['url'];

然后你可以使用数据来解析你需要的东西。

【讨论】:

好的,我真的需要学习 Apache。感谢Senad的样品!!!如果您有额外的时间,您能告诉我每个部分的作用吗? IfModule 检查 mod_rewrite.c 在服务器上是否存在 RewriteEngine On 将其打开。 RewriteCondition 是条件,重写什么 Reqrite 规则如何处理重写的数据(取.com 之后的所有内容并将其放入服务器变量并执行 index.php,是的,这就是您现在需要了解的所有内容 Drupal 有非常相似的重写仅供参考。

以上是关于搜索引擎友好的 URL的主要内容,如果未能解决你的问题,请参考以下文章

包含数字的搜索引擎友好 URL……好还是坏?

.htaccess 使 url 对搜索引擎友好

.htaccess 搜索引擎和用户友好的 URL

搜索引擎友好的URL包含数字......好还是坏?

Laravel 8:类似于用户名 URL 系统的搜索引擎友好 Instagram

codeigniter 的 seo 友好 url