SEO友好的URL

时间:2011-05-14 13:43:26

标签: php url-rewriting

我喜欢SO提供问题链接的方式 喜欢这个问题有链接http://stackoverflow.com/questions/6002203/seo-friendly-url 问题标题为seo-friendly-url

我正在创建一个博客,我希望以相同的方式提供链接,如何在PHP中执行此操作?
欢迎提出任何建议:)

表格结构

  • ID
  • 标题
  • 标签
  • 分类
  • UID

Added
我正在使用PHP / APACHE而没有框架!我不想使用任何博客,想要创建我自己的

3 个答案:

答案 0 :(得分:5)

我不确定为什么人们在这里如此刻意地迟钝......

您正在寻找的是mod_rewrite,一个用于URL重写的apache模块。

在.htaccess文件中(您可能需要制作)put:

<IfModule mod_rewrite.c>
RewriteEngine on

RewriteRule ^blog\/([0-9]+)\/.*$ /blog.php?post=$1 [L]
</IfModule>

这意味着当您在幕后转到/blog/10/any-old-bit-of-text/时,如果您访问了/blog.php?post=10,那就相同了。

([0-9] +)位称为正则表达式(或正则表达式),并匹配任何数字。 .*表示匹配任何内容。 ^锚定到查询的开头,$锚定到结尾。斜杠(/)将转义为\/

答案 1 :(得分:0)

首先,您没有编写您使用的框架。我描述了你想在Symfony框架上做什么

第一个解决方案

http://www.symfony-project.org/jobeet/1_4/Doctrine/en/05#chapter_05_route_customizations

  1. 更改路由引擎的路由了解“Nice urls”
  2. 更改控制器的操作,该操作负责使用您的文章搜索正确的记录
  3. 您可以通过声明sluing函数来增强解决方案,并直接在路径

    中使用它

    第二个解决方案

    使用已经支持它的任何博客解决方案 - 如 ceejayoz

    所写

答案 2 :(得分:0)

您可以一起使用PHP和Apache。特别是Apache Forcetype。 This article explains how to use Forcetype

假设您有这样的网址:http://www.example.com/article/seo-friendly-example

.htacess文件如下所示:

<Files article>
  ForceType application/x-httpd-php 
</Files>

PHP看起来像这样:

<?php
    list(,$slug) = explode("/", $_SERVER['REQUEST_URI']);
?>

$slug的值为seo-friendly-example。这将是该文章数据库的关键。