Pretty URL via Rewrite

时间:2018-12-18 作者:Phill Healey

我正在为我的站点用户构建一个动态填充的配置文件页面。当前使用以下URL结构:

https://example.com/members-list-profile/?&uid=XX
我想通过插入用户的nicename来创建此URL结构,从而改善URL的外观:

https://example.com/members-list-profile/{nicename}/?uid=XX
我知道我应该能够使用中相当简单的重写规则来完成此操作.htaccess, 但无法获得正确的规则设置。

如何获取此结构/重写设置?

1 个回复
SO网友:MrWhite

htaccess中的重定向会将“漂亮”url路由到真正的基于querystring的url,这就是问题所在。

因此,您似乎需要“删除”/{nicename} 表单“pretty”URL中的部分https://example.com/members-list-profile/{nicename}/?uid=XX.

在您的.htaccess 使用mod\\u重写的文件(WordPress前端控制器之前):

RewriteRule ^(members-list-profile/)[^/]+/$ $1 [L]
然而,除非这映射到一个物理文件(在这种情况下,您应该直接重写到该文件,而不是让mod\\u dir发出子请求),否则这可能不适用于WordPress,因为WP仍然基于物理/可见URL路由URL-它不必看到重写的URL。您可以发出一个外部重定向来绕过此问题,但这实际上违背了{nicename} 在要开始的URL中。

像这样的事情应该完全在WordPress中完成,而不是.htaccess.