Mod rewrite mod_rewrite-将旧参数名称改为新名称

Mod rewrite mod_rewrite-将旧参数名称改为新名称,mod-rewrite,parameters,Mod Rewrite,Parameters,大家好,我需要在mod_rewrite中获得一点重定向 我需要重定向以下内容 http://mysite.com/dictionary/find?word=test 到 我确信这个解决方案很简单,但我对mod_重写和正则表达式的了解非常有限,我还没有能够解决这个问题。这是我迄今为止所做的尝试,但没有成功 RewriteCond %{QUERY_STRING} word= [NC] RewriteRule ^/(.*)word=(\w+)/$ /w=$1 [L] 任何帮助都将不胜感激。谢谢。这

大家好,我需要在mod_rewrite中获得一点重定向

我需要重定向以下内容

http://mysite.com/dictionary/find?word=test

我确信这个解决方案很简单,但我对mod_重写和正则表达式的了解非常有限,我还没有能够解决这个问题。这是我迄今为止所做的尝试,但没有成功

RewriteCond %{QUERY_STRING} word= [NC]
RewriteRule ^/(.*)word=(\w+)/$ /w=$1 [L]

任何帮助都将不胜感激。谢谢。

这对你来说应该足够了

重写规则(?|&)word=(\w+)$1w=$2

这将取代它,即使与其他参数组合。您尝试只处理querystring是有趣的,我从未使用过,也无法回答是否可能

作为旁注,请启用:

RewriteLog“/var/log/apache2/rewrite.log”
重写日志级别2

获取更多有用的反馈。

尝试以下方法:

RewriteCond %{QUERY_STRING} ^(([^&]*&)*)word=(.*)
RewriteRule ^dictionary/find$ $0?%1w=%3 [R=301,L]

感谢您的帮助,jishi我尝试了您的RewriteRule,但在尝试使用RewriteRule启动Apache时遇到以下错误:无法编译正则表达式“(?|&)word=(\\w+”,额外的反斜杠不是我的错误,我很清楚,完整的错误是:/data/home/user/web/conf/rewrite.conf第2行的语法错误:RewriteRule:cannotcompileregular expression'(?|&)query=(\\w+)'hm您可能需要转义?,(\?|&)
RewriteCond %{QUERY_STRING} ^(([^&]*&)*)word=(.*)
RewriteRule ^dictionary/find$ $0?%1w=%3 [R=301,L]