我是一名php开发人员,目前正在开发CMS/博客系统。 我想添加一个像WordPress这样的永久链接系统。 我很好奇WordPress如何解析永久链接。例如,如何从以下位置获取id
和post name
等数据:
example.com/id/123/post/example/
简而言之,我希望系统从 url 获取id
和post name
。我想让用户能够使用以下标签更改永久链接结构,如WordPress:
id/%postid%/post/%postname%/
如何在变量(如 $id
和$post_name
)中获取数据,值将123
和example
?请帮助我。提前谢谢。
常用的 apache 模块mod_rewrite可以帮助您解决这个问题。 你所做的是在.htaccess文件中编写重写规则,通过重写,通常类似于文件系统的花哨结构被发送到PHP文件作为$_GET参数。
例如,如果要将以下内容替换为:?reactor=13
/reactor/13/
在 .htaccess 文件中编写此重写规则:
RewriteEngine on
RewriteRule reactor/([0-9]+)/$ index.php?id=$1
现在,如果你拉出/reactor/13/而不是索引.php你的 index.php 文件应该在 $_GET 中看到以下内容:
Array
(
[id] => 13
)
现在,对于您的 HTML 代码,由您来制作 URL 并遵守您深思熟虑的结构。
这些重写规则可能会令人困惑,但它们遵循逻辑正则表达式模式。
WordPress 采用比插入这些编辑 .htaccess 文件更强的方法,他们将所有内容发送到 WP,然后 WP 通过内部规则解决/路由其余部分。
这取决于您使用的服务器软件,但是如果您计划在Apache上使用脚本,则通常涉及使用称为mod_rewrite
的东西,特别是.htaccess
文件。
我建议从阅读有关此主题的教程开始。像往常一样,谷歌是你的朋友。