我正在使用客户端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]