我正在尝试根据网站用户的用户名使用漂亮的联盟网址。
我需要重定向一个类似的链接:
https://example.com/anything-here/username
要
https://example.com/anything-here/?ref=user_id
我找到了这个解决方案:
RewriteRule ^(.*)username(.*)$ https://example.com/?ref=user_id [L,R=301]
它可以工作,但重定向到我在此处设置的页面(在这种情况下,它是主页)。我的问题是:
如何将其重定向到开头请求的页面,但删除用户名并添加/?ref=user_id
?
答案 0 :(得分:0)
你看起来好像很近,你只需要使用反向引用。请尝试以下方法:
RewriteRule ^(.*)/username$ https://example.com/$1/?ref=user_id [R=302,L]
$1
是RewriteRule
模式中第一个捕获组的反向引用。
此外,您似乎不需要在模式结尾处使用(.*)
,因为username
位于网址的末尾(至少在您的示例中)。
这是302(临时)重定向 - 如果需要,将其更改为301(永久)。
在测试之前,您需要清除浏览器缓存。