Use this rule
RewriteRule ^(index.php/?)?rss/ - [L,F]
instead of the official one:
RewriteRule ^(index.php/?)?rss/ - [L,R=403]
[F]
is the semantically correct flag to [F]orbid access.
The reason the official one doesn't work for you might be because of using an older Apache and corresponding mod_rewrite version. It's not fully clear from the mod_rewrite documentation, but in contrast to Apache v2.2 and v2.4, the v2.0 docs don't mention that status codes other than 300-400 are supported. As a result, the rule containing the flag [R=403]
as suggested by Magento itself may be skipped under Apache 2.0.
If this is the root cause, then Magento should rework either their system requirements – as they're officially supporting Apache 2.x – or their RSS blocking RewriteRule.
v2.0 docs on [R] flag
'redirect|R [=code]' (force redirect)
Prefix Substitution with
http://thishost[:thisport]/ (which makes the new URL a URI) to force a
external redirection. If no code is given, a HTTP response of 302
(MOVED TEMPORARILY) will be returned. If you want to use other
response codes in the range 300-400, simply specify the appropriate
number or use one of the following symbolic names: temp (default),
permanent, seeother. Use this for rules to canonicalize the URL and
return it to the client - to translate /~'' into
/u/'', or to
always append a slash to /u/user, etc.
[...]
v2.2 and v2.4 docs on [R] flag
[...]
Any valid HTTP response status code may be specified, using the syntax
[R=305], with a 302 status code being used by default if none is
specified. The status code specified need not necessarily be a
redirect (3xx) status code. However, if a status code is outside the
redirect range (300-399) then the substitution string is dropped
entirely, and rewriting is stopped as if the L were used.
[...]
RewriteRule ^(index.php/?)?rss/ - [L,R=403]
. However, when I add this code, my DNS stops working and throw unreachable error in browser.redirected you too many times.