【问题标题】:Replace "name" parameter from query in wordpress从 wordpress 中的查询替换 \"name\" 参数
【发布时间】:2022-08-04 10:05:46
【问题描述】:

我的新 wordpress 网站必须接收然后重定向来自外部的 GET 请求,该请求具有姓名请求中附加的参数。 \"Name\" 是 wordpress 中的保留参数,所以当收到请求时,我得到一个 404。

旧要求: www_myweb_com/老的_购买?姓名=迈克尔&姓=史密斯
新地址: www_myweb_com/新的_购买?=迈克尔&姓=史密斯

重定向已经用插件解决了,但重要的是如何替换它姓名参数为.谁能帮我这个?
先感谢您。

  • GET 请求是否来自其他网站/api,或从您的相同的WordPress 网站?以及如何通过 AJAX 手动调用请求?如果请求只是一个 URL 字符串,你不能简单地用名字替换名字吗? :)
  • 该请求来自一个由一千人分发和使用的 Windows exe 文件。我们可以在较新的版本中更改该参数,但仍然有很多用户安装了旧版本。该 exe 有一个名为“注册您的应用程序”的菜单,它会打开一个本地浏览器,将所有参数传递给站点,因此用户不必输入两次。我知道可以在 \".htaccess\" 中设置一些东西,但不知道该怎么做。 (谢谢你的回答)。
  • 感谢您推荐 htaccess,这让我进入了一场疯狂的谷歌研究冒险,并教会了我一些关于 htaccess 及其“语言”的知识。检查我的答案是否有可能的解决方法:)

标签: wordpress parameters sanitize


【解决方案1】:

在你的 Wordpress 目录的根目录下找到 .htaccess 文件,打开它并添加这个在顶部(高于预先存在的 Wordpress 规则):

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/old_purchase$
RewriteCond %{QUERY_STRING} ^name=(.*)&(.*) [NC]
RewriteRule (.*) /new_purchase?firstname=%1&%2 [NE,QSD,R,L]
</IfModule>

这是做什么的:

  1. 检查 URL 是否匹配 www.myweb.com<b>/old_purchase</b>
  2. 在 URL 查询中找到正则表达式模式^name(.*)&amp;(.*)
    • (例如,www.myweb.com/old_purchase?name=...&amp;lastname=...&amp;others.. 匹配此正则表达式,并将 name 值存储为变量,以及其余查询参数)
  3. 重定向到www.myweb.com/new_purchase?firstname=%1&amp;%2,其中%1 是之前存储的名称值,%2 是其余的查询参数
    • 然后完整的重定向 URL 变为 www.myweb.com/new_purchase?firstname=...&amp;lastname=...&amp;others..

    注意:我是 Apache 和 htaccess 语法和语言的 n00b,所以这可能不是最好的解决方案。但它有效:)

【讨论】:

    猜你喜欢
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-07
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    相关资源
    最近更新 更多