【问题标题】:Htaccess Redirect to another pageHtaccess 重定向到另一个页面
【发布时间】:2014-07-24 09:52:43
【问题描述】:

大家好,我无法重定向到测试站点的另一个页面并将变量传递给它。

这是我的链接

<a href="/dashboard/add_social.html?id=<?=$social_platform->getId()?>&action=delete" class="delete">delete</a>

这是htaccess 文件中的Rewrite Rule,但它似乎不起作用。我确定我做错了,所以我很感激任何帮助。

RewriteRule ^dashboard/add_social.html\.html$                   pages/dashboard/smr_add_social.dashboard.php?id=$1 [QSA,L]

【问题讨论】:

  • 不是您问题的答案 - 但这是删除链接吗?如果是这样 - 考虑不同的机制可能是明智的。某些 ISP 和浏览器通常会预先获取链接,您可能会开始让内容消失在您身上...
  • 是的,它调用一个控制器页面,该页面将编辑、删除或激活列表中的项目
  • 有没有想过$1做了什么? ;-) 我敢打赌,如果你删除 ?id=$1 它会神奇地开始工作。
  • 我删除了?id=$1,但仍然没有运气
  • @steve 更不用说一个漏洞利用,未经许可的用户可以诱使有权限的用户删除具有实际重定向图像的内容,例如论坛。这就是为什么管理员操作应该始终是 POST 请求。

标签: php .htaccess redirect


【解决方案1】:

尝试摆脱/.html

RewriteRule ^dashboard/add_social.html$  pages/dashboard/smr_add_social.dashboard.php [QSA,L]

请注意,QSA 标志意味着如果有一个查询字符串被传递,它将被附加到新的 url。

【讨论】:

  • 虽然这是正确的,但这实际上并不是这里的问题——OP 已经设置了那个标志。模式不匹配,因为它的末尾有 .html\.html ...
  • 看到他是如何使用它的,我真的不认为 OP 理解标志,因此解释。 /.html 是非常不言自明的。但我同意答案可能令人困惑,我会编辑它。
【解决方案2】:
  1. 修复错误的重写规则“^dashboard/add_social.html.html$”
  2. ModRewrite 将_GET 参数传输到另一个脚本需要使用%{QUERY_STRING}

    重写引擎开启 RewriteRule ^dashboard/add_social.html$ pages/dashboard/smr_add_social.dashboard.php?%{QUERY_STRING} [L]

【讨论】:

    猜你喜欢
    • 2016-12-19
    • 1970-01-01
    • 2014-08-10
    • 2014-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多