使用 URL 参数的 PHP 重定向

Posted

技术标签:

【中文标题】使用 URL 参数的 PHP 重定向【英文标题】:PHP Redirect using URL Params 【发布时间】:2021-11-03 20:55:48 【问题描述】:

我想使用 php 创建一个重定向,从 url 参数中捕获键,并重写它的关联值,例如:

https://somewhere.com/folder/?a_param=123

https://somewhere_else.com/?b_param=123

如果对初学者有任何指导,我们将不胜感激。

【问题讨论】:

【参考方案1】:

使用 php 头文件

header('Location: https://somewhere_else.com/?b_param=' . $_GET['a_param']);
exit();

【讨论】:

【参考方案2】:

一般来说,在 PHP 中你可以这样重定向:

header("Location:" . $somewhere);
exit;

如果您有一个名为 rd.php 的文件,您将使用如下代码:

https://somewhere.com/folder/rd.php?a_param=123

在 rd.php 中

<?php
$param = $_GET['a_param'];
header("Location: https://somewhere_else/?b_param=$param");
exit;

如果你想实现https://somewhere.com/folder/?a_param=123,这意味着你不想要rd.php 部分,你将需要apache2 或任何你正在使用的网络服务器的帮助。您可以使用 Apache mod_rewrite 来执行此操作。

    # Put this in document_root/folder
    # .htaccess
    RewriteCond %REQUEST_FILENAME !-d
    RewriteCond %REQUEST_FILENAME !-f
    RewriteRule ^(.*)$ rd.php [QSA,L]

【讨论】:

这非常有帮助并完成了工作。不幸的是,我刚刚发现我试图让这个脚本运行的网站实际上是在 Squarespace 上运行的,它们不允许自定义服务器端脚本。那么......是否有可能用javascript实现相同的目标?欣赏这与我最初的问题有很大的不同...... 我想你可以。打开一个新问题。

以上是关于使用 URL 参数的 PHP 重定向的主要内容,如果未能解决你的问题,请参考以下文章

使用参数重定向 PHP URL

根据缺少 URL 参数或参数是不是为空来重定向页面 - PHP

如何从 IIS 重定向带有参数的 URL

删除 404 重定向上的所有 url 参数

根据 URL 参数重定向,如果 URL 参数在表行中可用 - PHP MySQL

使用多个参数重定向 URL 以清除 .htaccess 中的 URL