我在 Stackoverflow 上问过这个问题,但其中一位回复者建议我在这里问。我想知道这是否可以在 htaccess 中完成?
我有这个网址:
https://www.example.com/folder/New.jsp?par=new1
...我想重定向到:
https://www.example.com/folder/New.jsp
我该怎么做?
基本上,我par=new1|new2|new3|new4
希望被重定向到https://www.example.com/folder/New.jsp
。
如能得到您的任何帮助,我们将非常感激。
答案1
如果你只需要去掉参数,这很简单
RedirectMatch https://www.website.com/folder/New.jsp(\?par=.[a-z]) https://www.website.com/folder/New.jsp
不需要 mod_rewrite。
答案2
为了匹配特定的 URL 参数,你需要使用 mod_rewrite 和状况检查QUERY_STRING
服务器变量。mod_aliasRedirect
和RedirectMatch
指令仅匹配 URL 路径,不能用于检查查询字符串。
.htaccess
在文档根目录中的文件顶部附近尝试执行以下操作:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^par=(new1|new2|new3|new4) [NC]
RewriteRule ^folder/New\.jsp$ /$0 [NC,QSD,R,L]
指令上的标志QSD
(需要 Apache 2.4)RewriteRule
丢弃重定向 URL 中的原始查询字符串。如果您仍在使用 Apache 2.2,则?
在代换字符串。例如:RewriteRule ^folder/New\.jsp$ /$0? [NC,R,L]
。
$0
是对匹配的整个 URL 路径的反向引用RewriteRule
图案。 IE。folder/New.jsp
。
请注意,这是 302(临时)重定向。如果需要 301(永久)重定向,则将标志更改R
为R=301
。