现在当用户输入像
这样的东西时site.com/shirt/shirtid
它们被rewriterrule重定向,rewriterrule写着
RewriteRule ^shirt/([a-z][0-9a-z_]+)$ /utils/phurl/redirect.php?alias=$1 [L,R=301]
然后将它们重定向到分配该别名的页面。
当PHP重定向发生时(通过header(Location:$url)),但是,它将url从site.com/shirt/shirtid更改为我想要缩短的非常长的url。有没有一种方法可以让我在整个重定向过程中保持原来的URL ?
。用户访问site.com/shirt/shirtid,重定向过程发生,地址栏中的URL仍然是site.com/shirt/shirtid
当您通过PHP传递重定向头时,默认情况下,您将导致页面加载重定向。当然,您可以重定向到任何您想要的URL格式。我不知道你怎么能让它和原来的URL一样,但是,因为这会让你陷入一个无限重定向循环。
在我看来,在PHP中,您实际上不想做重定向,而是根据别名值(基本上是前端控制器模式)有条件地包含一些页面逻辑集。