搜索引擎友好的 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
文件,它将:
有没有比我尝试的更好的方法?
【问题讨论】:
这是一个很好的tutorial 关于 mod_rewrite。 【参考方案1】:是的,第一个选项很难维护。如果要更改页面的标题,则需要重新计算 所有 个页面。
最简单的方法是创建一个名为product.php
或product/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的主要内容,如果未能解决你的问题,请参考以下文章