在 PHP 302 重定向期间,无法在浏览器 URL 栏中保留地址
Unable to persist address in browser URL bar, during PHP 302 Redirect
在我的页面上
/my/conditional/redirect/page/index.php
我有条件 PHP 302 重定向:
<?php
if (!in_array($_SERVER['REMOTE_ADDR'], ['369.168.492.123'])) {
// header('HTTP/1.1 403 Forbidden');
header('Location: https://'.$_SERVER['HTTP_HOST'].'/my/redirect/index.php', TRUE, 302);
exit;
}
else {
[... PHP CODE HERE...]
}
?>
我试过这个代码:
- 同上
- 带和不带
TRUE
和 302
参数
- 有无
exit;
- 有无
https://'.$_SERVER['HTTP_HOST']
没关系。重定向总是将浏览器中的位置 URL 栏更改为:
/my/redirect/index.php
虽然我非常希望它坚持为:
/my/conditional/redirect/page/index.php
我缺少什么来确保页面重定向(通过 302 Redirect
)而不需要浏览器 URL 栏位置更新?
What am I missing to ensure the page redirects (via a 302 Redirect) without the browser URL bar location updating?
没有。这就是 HTTP 重定向的工作原理。
如果要保留URL,则需要执行内部重定向或代理请求,以便服务器returns内容您想要的 URL 已被请求。
在我的页面上
/my/conditional/redirect/page/index.php
我有条件 PHP 302 重定向:
<?php
if (!in_array($_SERVER['REMOTE_ADDR'], ['369.168.492.123'])) {
// header('HTTP/1.1 403 Forbidden');
header('Location: https://'.$_SERVER['HTTP_HOST'].'/my/redirect/index.php', TRUE, 302);
exit;
}
else {
[... PHP CODE HERE...]
}
?>
我试过这个代码:
- 同上
- 带和不带
TRUE
和302
参数 - 有无
exit;
- 有无
https://'.$_SERVER['HTTP_HOST']
没关系。重定向总是将浏览器中的位置 URL 栏更改为:
/my/redirect/index.php
虽然我非常希望它坚持为:
/my/conditional/redirect/page/index.php
我缺少什么来确保页面重定向(通过 302 Redirect
)而不需要浏览器 URL 栏位置更新?
What am I missing to ensure the page redirects (via a 302 Redirect) without the browser URL bar location updating?
没有。这就是 HTTP 重定向的工作原理。
如果要保留URL,则需要执行内部重定向或代理请求,以便服务器returns内容您想要的 URL 已被请求。