如何使用 .htaccess 使用随机搜索查询重定向 URL?



我正在使用客户端WordPress网站上的插件"Relevanssi",以获得更好的搜索和搜索突出显示。效果很好,但是当我在搜索后立即单击一个特定链接时出现问题。搜索查询粘贴在该链接和请求的页面(即/contact/agenda/(是乱码。这就是为什么我想将 URL 重定向到搜索查询以?highlight=开头的页面(例如/contact/agenda/?highlight=searchterm( 以标准显示指向该页面的 URL。

我已经尝试了我能找到的任何例子。特别是,我看了一眼 https://www.inmotionhosting.com/support/website/redirects/301-redirect-query-string 和 https://perishablepress.com/redirect-query-string-htaccess/。复制,粘贴并尝试无济于事。

这是我到目前为止拥有的.htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/contact/agenda/
RewriteCond %{QUERY_STRING} highlight=([a-z]+) [NC]
RewriteRule (.*) /contact/agenda/ [R=301,L,NE]
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

我想要的结果是将/contact/agenda上的任何搜索查询重定向到/contact/agenda。例如:/contact/agenda/?highlight=kip应重定向到/contact/agenda/。另外,/contact/agenda/?highlight=kippensoep应该重定向到/contact/agenda/等。 相反,当前htaccess代码不会使用/contact/agenda/?highlight=searchterm重定向任何搜索查询。我也没有错误消息。

当 Apache 重定向时,它会保留查询字符串。使用QSD删除查询字符串。

RewriteCond %{REQUEST_URI} ^/contact/agenda/
RewriteCond %{QUERY_STRING} highlight=([a-z]+) [NC]
RewriteRule (.*) /contact/agenda/ [R=301,L,NE,QSD]

最新更新