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

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

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。

标签: php apache .htaccess seo search-engine


【解决方案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 有非常相似的重写仅供参考。
猜你喜欢
  • 2021-06-12
  • 2013-10-16
  • 2014-11-09
  • 2012-06-18
  • 2010-12-11
  • 2011-12-24
  • 2017-04-13
  • 2012-03-18
  • 2012-10-09
相关资源
最近更新 更多