将 post 标题附加到自定义构建框架中的 URL

Appending post title to URLs in a custom built framework

使用 Stack Overflow 作为案例研究,将其放在 URL 中,它会在加载时将 URL 更改为

如何实现该功能?

我正在使用自定义构建的框架。

这是.htaccess规则

RewriteEngine on
RewriteRule ^$   public/    [L]    
RewriteRule (.*) public/  [L]

在 public 目录中,我有这个 `.htaccess 规则

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php?route= [L,QSA]

这是我用来在我的 Bootstrap class 中捕获传入 url 用于路由的方法。

如何使用这种框架实现上述功能。这种路由效果是否仍然有效,因为我在 public/ 目录中尝试了一些 re-write 规则,但它似乎对 URL 根本没有任何影响(我猜是因为它一个框架权)

这是我试过的一些规则

#RewriteCond %{REQUEST_URI} ^[0-9a-zA-Z-]$ [NC]
#RewriteRule ^/[0-9A-Za-z-]$ %{REQUEST_URI}/?title= [R=301,L]

#RewriteCond %{REQUEST_URI} /+[^\.]+$
#RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

None 快要工作了。

编辑:我的问题与其标志无关。我不是在谈论漂亮的链接。该框架已经提供了,但就像描述的 Stack Overflow 场景一样,如果我转到 www.example.com/news/1 它应该重定向(也许;我不知道 Stack Overflow 是怎么做到的)到 www.example.com/news/1/title-of-the-new.

使用 Whosebug 示例,您的 php 路由控制器需要获取 url 的 ID 部分并查找最后的标题部分。

然后您必须执行 header('Location:'. $fullUrl); 重定向。

如果您删除此页面上 url 的标题部分,您可以在浏览器开发工具网络中看到完成 301 重定向以获取完整的 url。