I want to block access via rewrite to IBM WebSphere WCM:
/wps/wcm/webinterface/login/login.jsp
And allow access to everything else under
/wps/*
Any ideas? I tried:
RewriteCond %{REQUEST_URI} ^/wps/wcm/webinterface/login/login\.jsp [OR,NC]
RewriteCond %{REQUEST_URI} !^/wps.*
RewriteRule ^/.* https://myhost.com/wps/portal [L,R=permanent]
CodePudding user response:
I got it working using the following (here's a snip of my rewrites)
RewriteCond %{HTTPS} off
RewriteRule ^/.* https://%{HTTP_HOST}/wps/portal [L,R=permanent]
RewriteCond %{REQUEST_URI} ^/wps/wcm/webinterface.*
RewriteRule ^/,* https://%{HTTP_HOST}/wps/portal [L,R=permanent]
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} .*(jsp|jsv|wml|chtml) [OR,NC]
RewriteCond %{REQUEST_URI} !^.*(htm|html|js|pdf|swf|ico|gif|jpg|css|png) [NC]
...
RewriteRule ^/,* https://%{HTTP_HOST}/wps/portal [L,R=permanent]
Thanks everyone!
CodePudding user response:
Try the following instead (you don't need to use mod_rewrite here):
<If "%{REQUEST_URI} == '/wps/wcm/webinterface/login/login.jsp'">
Require all denied
</If>
This serves a 403 Forbidden for the specific URL as stated.
(Requires Apache 2.4)
Using mod_rewrite:
RewriteCond %{REQUEST_URI} ^/wps/wcm/webinterface/login/login\.jsp [OR,NC] RewriteCond %{REQUEST_URI} !^/wps.* RewriteRule ^/.* https://myhost.com/wps/portal [L,R=permanent]
In a .htaccess context, the URL-path that the RewriteRule pattern matches against does not start with a slash, so the pattern ^/.* will never match (so the request is never "blocked"). However, you need the slash prefix if the rule is being used directly in a server or virtualhost context.
Since you only want to block a specific URL, you don't need to check that it's not something else (ie. does not start with /wps). But OR'ing these two conditions does not make sense (according to your criteria) as it would block the stated URL and every other URL that does not start with /wps.
This also issues a 301 redirect, it doesn't specifically "block" the request.
To block just that one URL you would need something like the following:
RewriteRule ^/?wps/wcm/webinterface/login/login\.jsp - [F]
