URL slug 的问题。

Posted

技术标签:

【中文标题】URL slug 的问题。【英文标题】:Issue with URL slug. 【发布时间】:2013-06-25 15:44:51 【问题描述】:

我似乎无法获得 url slug 的第二部分。我目前有这样的 .htaccess 文件:

RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?id=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?id=$1

得到这个:

http://example.com/user/john

现在无法让它工作:

 http://example.com/user/john?o=last

如何获取$_GET['o']

【问题讨论】:

***.com/a/11760282/1628832 ? 我怎样才能让我的网址像这样工作? example.com/user/john/last 您要将其重定向到的 URL 是什么?用户/约翰是真正的文件夹吗?原始网址是什么? 【参考方案1】:
    您需要 QSA(查询字符串附加)标志以在重定向时保留现有查询。 您不需要 2 条规则来处理尾部斜杠。

用这个替换你的代码:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^([a-z0-9_-]+)/?$ /index.php?id=$1 [L,QSA,NC]

【讨论】:

以上是关于URL slug 的问题。的主要内容,如果未能解决你的问题,请参考以下文章

Django:如果 slug 错误,则重定向 url

CakePHP 中的反向路由基于 Slug 的 URL

Django:使用重复的 slug 管理诸如 id:slug 之类的 url

在 url 中组合多个 slug

Javascript:匹配 URL 的 slug

从 Laravel 中的 url 获取最新的 slug