我喜欢SO提供问题链接的方式
喜欢这个问题有链接http://stackoverflow.com/questions/6002203/seo-friendly-url
问题标题为seo-friendly-url
我正在创建一个博客,我希望以相同的方式提供链接,如何在PHP中执行此操作?
欢迎提出任何建议:)
表格结构
Added
我正在使用PHP / APACHE而没有框架!我不想使用任何博客,想要创建我自己的
答案 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
您可以通过声明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
。这将是该文章数据库的关键。