我想将搜索结果页面重定向到新页面。旧网址如下:
A
我需要它看起来像这样:
/תוצאות_חיפוש:search_keyword
/?s=search_keyword&post_type=product
是用户要查找的内容,表示他要查找的术语。这意味着这不应更改。例如,如果有人搜索“衬衫”,则旧网址将如下所示:
search_keyword
新的外观如下:
/תוצאות_חיפוש:shirts
我已经尝试过在StackOverflow上找到的多种解决方案,但都没有成功。
如何创建此重定向?
答案 0 :(得分:1)
您必须捕获搜索字符串并在替换URL中使用它
RewriteRule ^תוצאות_חיפוש:(.+)$ /?s=$1&post_type=product [L]
有关详细信息,请参见RewriteRule
和Apache mod_rewrite Introduction。
尽管如此,我从未在.htaccess文件中看到过ASCII以外的任何内容, 我只是在测试环境中进行了检查。即使如此,Apache将此请求记录为
172.17.0.1--[12 / May / 2019:14:58:39 +0000]“ GET /%D7%AA%D7%95%D7%A6%D7%90%D7%95%D7%AA_ %D7%97%D7%99%D7%A4%D7%95%D7%A9:衬衫HTTP / 1.1“ 200 268”-“” Mozilla / 5.0(X11; Linux x86_64)AppleWebKit / 537.36(KHTML,例如Gecko) Ubuntu Chromium / 73.0.3683.86 Chrome / 73.0.3683.86 Safari / 537.36“
在mod_rewrite中,RewriteRule
接收为已解码的תוצאות_חיפוש:shirts
答案 1 :(得分:0)
尝试使用此:
url_string_name.replace(@"^\/תוצאות_חיפוש:", "/?s=");
这将替换url的开头。然后:
url_string_name.replace(@"$", "&post_type=product");
这将替换网址的结尾;
^
表示字符串的开头,$
表示字符串的结尾。
祝你好运!