无法配置合适的Rewrite规则?需拦截IBM WebSphere WCM特定路径
IBM WebSphere WCM Rewrite规则拦截特定路径的解决方案
你的需求是拦截对/wps/wcm/webinterface/login/login.jsp的访问,同时允许/wps/*下的其他所有内容正常访问,先分析你现有规则的问题,再给出正确的实现方案:
现有规则的问题
你写的规则逻辑存在冗余且不符合需求:
RewriteCond %{REQUEST_URI} ^/wps/wcm/webinterface/login/login\.jsp [OR,NC] RewriteCond %{REQUEST_URI} !^/wps.* RewriteRule ^/.* https://myhost.com/wps/portal [L,R=permanent]
- 使用
OR条件后,只要满足「匹配目标jsp」或「请求不是/wps开头」其中一个,就会触发重定向。这会把所有非/wps开头的请求都重定向,超出了你原本的需求范围。 - 规则里的
^/.*匹配范围过大,第二个条件完全多余,反而可能引发不必要的重定向。
正确的Rewrite规则实现
只需要精准匹配目标路径,触发重定向即可,其他/wps/*路径会自动跳过规则(不触发重定向),实现如下:
# 精准拦截指定的login.jsp路径,永久重定向到门户页面 RewriteCond %{REQUEST_URI} ^/wps/wcm/webinterface/login/login\.jsp$ [NC] RewriteRule ^ https://myhost.com/wps/portal [L,R=permanent]
规则说明
RewriteCond中的^/wps/wcm/webinterface/login/login\.jsp$确保精准匹配目标路径,$避免类似后缀的路径被误拦截;[NC]表示忽略大小写,适配可能的大小写请求。RewriteRule中的^匹配所有符合前置条件的请求,直接重定向到指定门户页面;[L]标记为最后一条规则,避免后续规则干扰;R=permanent表示返回301永久重定向,利于浏览器缓存和SEO。
内容的提问来源于stack exchange,提问作者user4654707
相关产品推荐
相关产品推荐

