regex - 如何替换查询字符串中的第一个参数?
问题描述
我正在尝试将此查询“ https://myurl.com/puff/?search_keyword=xyz ”更改为“ https://myurl.com/puff/?s=xyz ”。
我看到了与此类似的答案,但我之前没有使用过正则表达式,并且在根据我的需要定制它时遇到了问题。我正在使用 WordPress 并编辑 .htaccess 文件来实现这一点。
我研究了如何使用 .htaccess 替换查询字符串中的第一个参数名称?并试图用它来定制我自己的 .htaccess 但我自己实现它时遇到了问题。
这是我当前的 .htaccess 文件的样子:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /puffadvisor/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /puffadvisor/index.php [L]x
</IfModule>
# END WordPress
非常感谢所有帮助:) 非常感谢。
解决方案
您需要一个基于%QUERY_STRING
然后引用前缀的捕获组的条件%
RewriteEngine On
RewriteCond %{QUERY_STRING} (.*(?:^|&))seach_keyword((?:$|=|&).*)
RewriteRule /puff /puff?%1s%2
无论参数出现在哪个位置,这都会{DOCUMENT_ROOT}/.htaccess
将参数名称替换为search_keyword
on s
location 。/puff
您可能想要重写所有路径
RewriteRule .* $0?%1s%2
推荐阅读
- google-cloud-platform - 基于列数据类型的表连接对性能的影响
- javascript - Javascript:变量范围
- java - 关于包含数组的构造函数设置的问题
- python - 评估图像分割方法
- javascript - 可选用 jsdoc、typescript checkjs (javascript) 反应 useState 类型
- python - 在未捕获数据的情况下,将具有 0 值的周添加到具有时间序列数据的 pandas 数据帧中的周
- vue.js - 通过 props 将数据从父组件传递到子组件时,数据在子组件的挂载钩子中似乎未定义
- python - 如何获取有关上述用户的信息(discord.py bot)?
- r - 通过取它们的最小值来合并具有相同名称的列
- sql - 带条件动作的 sqlite 表达式