Regex htaccess从url获取参数并重定向
我想将搜索结果页面重定向到新页面。旧url如下所示:Regex htaccess从url获取参数并重定向,regex,.htaccess,redirect,regex-group,Regex,.htaccess,Redirect,Regex Group,我想将搜索结果页面重定向到新页面。旧url如下所示: /תוצאות_חיפוש:search_keyword /?s=search_keyword&post_type=product 我需要它看起来像这样: /תוצאות_חיפוש:search_keyword /?s=search_keyword&post_type=product search\u关键字是用户寻找的,意思是他正在寻找的术语。这意味着这不应该改变。例如,如果有人搜索“衬衫”,旧url将如下所示: /
/תוצאות_חיפוש:search_keyword
/?s=search_keyword&post_type=product
我需要它看起来像这样:
/תוצאות_חיפוש:search_keyword
/?s=search_keyword&post_type=product
search\u关键字
是用户寻找的,意思是他正在寻找的术语。这意味着这不应该改变。例如,如果有人搜索“衬衫”,旧url将如下所示:
/תוצאות_חיפוש:shirts
/?s=shirts&post_type=product
而新的将看起来像:
/תוצאות_חיפוש:shirts
/?s=shirts&post_type=product
我已经尝试了在StackOverflow上找到的多种解决方案,但都没有成功
如何创建此重定向?尝试使用以下方法:
url_string_name.replace(@"^\/תוצאות_חיפוש:", "/?s=");
这将替换url的开头。然后:
url_string_name.replace(@"$", "&post_type=product");
这将替换url的结尾;
^
表示字符串的开头,$
表示字符串的结尾。
祝你好运 您必须捕获搜索字符串并在替换URL中使用它
RewriteRule ^תוצאות_חיפוש:(.+)$ /?s=$1&post_type=product [L]
有关详细信息,请参阅和
虽然,我在.htaccess文件中从未见过ASCII以外的内容, 我刚刚在我的测试环境中检查了这个。尽管如此,Apache还是将此请求记录为 172.17.0.1--[2019年5月12日:14:58:39+0000]“获取/%D7%AA%D7%95%D7%A6%D7%90%D7%95%D7%AA_574;%D7%97%D7%99%D7%A4%D7%95%D7%A9:shirts HTTP/1.1“200 268”-“Mozilla/5.0(X11;Linux x86_64)AppleWebKit/537.36(KHTML,如Gecko)Chromium/73.0.3683.86/3683.537”
在mod_rewrite中,重写规则接收解码后的信息单词“是常量”吗是的,他们是。它的意思是“搜索结果”,重定向的规则是什么?“搜索关键字”的值是否可以更改?请展开。@utor我编辑了这个问题,希望它现在能更有用。你也可以不用正则表达式,只需使用“替换”和“添加”就可以完成。它应该在某个代码之后,比如
上的重写引擎,还是在htaccess文件的任何地方?我想你可以在任何地方编写它。你试过了吗?我想是因为Hebrew@starkeen我懂了。我如何在htaccess文件中或者在发送任何头之前通过php完成这样的事情?(我正在使用WordPress)