0

现在当用户输入类似

site.com/shirt/shirtid

它们被 RewriteRule 重定向,上面写着

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

4

1 回答 1

1

当您通过 PHP 传递重定向标头时,默认情况下,您将导致页面加载重定向。您当然可以重定向到您想要的任何 URL 格式。但是,我不知道如何使它与原始 URL 相同,因为这会使您陷入无限重定向循环。

在我看来,在 PHP 中,您实际上并不想进行重定向,而是根据别名值有条件地包含一些页面逻辑(基本上是前端控制器模式)。

于 2013-03-29T15:41:50.813 回答