【问题标题】:Redirect a PHP populating from MySQL Query重定向从 MySQL 查询填充的 PHP
【发布时间】:2012-07-23 17:43:08
【问题描述】:

我需要将用户从页面资源/?group=168 重定向到资源/?group=205。

在 htaccess、php 重定向或可能在 index.php 中切换大小写是最好的方法吗?

我试过没有成功:

htaccess

Redirect resources/?group=168 http://www.site.com/resources/?group=205

大小写切换

switch ($id) { case '168': $id = 205; break;}

感谢您的任何建议。

【问题讨论】:

  • 为什么要重定向?这是唯一的,会有更多的重定向吗?
  • 这与 MySQL 查询有什么关系?
  • 我正在从我们用来存储简报的页面重定向到新位置。这是目前唯一的重定向。也许我措辞错误,但页面都存储在数据库中而不是 php 文件中,它按编号将每个页面拉入 index.php。

标签: php redirect


【解决方案1】:

如果您希望用户永久使用此组 ID 而不是另一个,我会在 htacces 或 Apache 配置中这样做,您可以发送适当的 3XX 系列响应标头让浏览器(和搜索引擎蜘蛛)知道这是该资源的新位置。

RewriteEngine On
RewriteRule ^resources/\?group=168$ /resources/?group=205 [R=301,L]

如果您的确切 URI 不是 /resources/?group=168,那么您可能需要做一些不同的模式,例如:

RewriteRule ^resources/(\?|.*&)group=168(&.*$|$) /resources/$1group=205$2 [R=301,L]

【讨论】:

  • 谢谢,我一直在努力让这些都在我们的设置中工作,但没有任何运气。理想情况下,我想使用 .htaccess 但我没有得到任何重写的结果。我已将它添加到根文件夹中的 .htaccess 中,我猜 $ 符号是指 168 之后可能出现的任何内容。但它根本没有反应。
  • $ 符号表示字符串的结尾。这只会匹配 /resources/?group=168 的文字 URI。如果可能会传递其他参数,那么您会想要做一些不同的事情。请参阅上面的编辑。
  • 我已经尝试将特定的重定向和您的代码添加到根、html 和资源文件夹中,但似乎对它们中的任何一个都没有影响。那应该放在哪个文件夹中以帮助消除我的一些猜测工作?谢谢!
  • 该规则可以在您的主 webroot 或 apache 配置文件中。请注意,如果将其放在您的 Web 根目录中,您需要在主 Apache 配置中启用 AllowOverride(默认情况下不启用)。
【解决方案2】:
if ($_GET['id'] == 168) {
  header('Location: http://www.site.com/resources/?group=205');
}

如果标头重定向不起作用,请使用 javascript

<script type="text/javascript">
<!--
window.location = "http://www.site.com/resources/?group=205"
//-->
</script>

【讨论】:

    【解决方案3】:

    我自己会使用if 声明:

    if ($id == '168') $id = 205;
    

    但我想这真的取决于您的需求。如果您希望 URL 栏反映重定向,我建议您使用 .htaccess。

    【讨论】:

    • 感谢您的帮助,这会起作用,但我意识到我需要任何使用该页面先前链接的人的 htaccess。
    【解决方案4】:

    我不确定switch 在您的示例中(单独)应该做什么,但是怎么样

    switch($_GET['group']) {
        case 168: $redirGrp = 205;break;
    }
    if(!empty($redirGrp)) header("Location:?group=$redirGrp");
    

    【讨论】:

      猜你喜欢
      • 2011-11-28
      • 2017-12-24
      • 1970-01-01
      • 2013-06-25
      • 1970-01-01
      • 1970-01-01
      • 2016-10-04
      • 2013-04-07
      • 2014-07-13
      相关资源
      最近更新 更多