Take the 2-minute tour ×
Webmasters Stack Exchange is a question and answer site for pro webmasters. It's 100% free, no registration required.

I wanted to forbid some robots from doing certain things to my websites and decided to add a RewriteRule for that purpose.

The rule works when put in one of my <VirtualHost *:80> tag and looks like this:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} libwww-perl
RewriteCond %{REQUEST_METHOD} POST
RewriteRule . - [F,L]

However, I wanted to apply that to all my websites instead of just one of them.

So with the newest version of Apache2 settings, I decided to put that code in the security.conf file. This file is defined under /etc/apache2/conf-available/... (and yes, I have a softlink from the /etc/apache2/conf-enabled/... directory.)

However, if the definition is only in the conf-available/security.conf files, it somehow gets ignored.

From the documentation, it says that these Rewrite* commands all work at server level!

Any idea of what I would be missing?

share|improve this question

1 Answer 1

up vote 2 down vote accepted

You need to add "RewriteOptions Inherit" to each virtual server. See http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#rewriteoptions for details.

share|improve this answer
    
Argh! I see that there is a new InheritDownBefore but I only have 2.4.6 and that one requires 2.4.8. Darn. I was hoping that it could be done without having to edit each virtual server... Too bad. I'll have to wait for the new version of Apache then. –  Alexis Wilke Jun 3 at 0:40

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.