首页 > 解决方案 > 如何替换查询字符串中的第一个参数?

问题描述

我正在尝试将此查询“ 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

非常感谢所有帮助:) 非常感谢。

标签: regexwordpress.htaccess

解决方案


您需要一个基于%QUERY_STRING然后引用前缀的捕获组的条件%

RewriteEngine On
RewriteCond %{QUERY_STRING} (.*(?:^|&))seach_keyword((?:$|=|&).*)
RewriteRule /puff /puff?%1s%2

无论参数出现在哪个位置,这都会{DOCUMENT_ROOT}/.htaccess将参数名称替换为search_keywordon slocation 。/puff

您可能想要重写所有路径

RewriteRule .* $0?%1s%2

推荐阅读