Hey Apache webmasters, Here's the tldr: I'm testing a simple catch-all rewrite rule. It doesn't seem to be taking effect, it's not being logged and I'm not getting any errors.
Now here's the long version. I'm a junior-level Linux systems administrator trying to gain a better understanding of how to configure the Apache web server. Right now I'm reading through some documentation and experimenting with Apache/2.2.22 on Ubuntu 12.04.5 LTS (Precise Pangolin). One piece of advice I've read is that it's a good policy to use mod_rewrite to explicitly require HTTP/1.1 and reject HTTP/1.0 requests. The example code given is the following: RewriteEngine On RewriteCond %{THE_REQUEST} !HTTP/1\.1$ RewriteRule .* - [F] I tried adding this block to my configuration file: /etc/apache2/conf.d/security I also checked to make sure that mod_rewrite was enabled and that there were no other conflicting rewrite rules, e.g.: $ sudo a2enmod rewrite > Module rewrite already enabled $ grep -Firl 'Rewrite' /etc/apache2/ > /etc/apache2/conf.d/security > /etc/apache2/mods-enabled/rewrite.load > /etc/apache2/mods-available/rewrite.load Then I restarted Apache and tested out the new configuration with curl: curl --http1.0 127.0.0.1 Unfortunately I got back the default welcome page instead of the expected 403 FORBIDDEN response. After a little bit of tinkering I ended up with the following rewrite configuration (in /etc/apache2/conf.d/security): RewriteEngine On RewriteLog "/var/log/apache2/rewrite.log" RewriteLogLevel 3 RewriteCond %{THE_REQUEST} ^.*$ RewriteRule ^.*$ - [F] Again I get the Apache default welcome page rather than the expected 403 FORBIDDEN response. Here is an example session where I test the server with curl and then check the log files (rewrite, error and access logs): $ sudo service apache2 restart > * Restarting web server apache2 > ... waiting . [OK ] $ curl 127.0.0.1 > <html><body><h1>It works!</h1> > <p>This is the default web page for this server.</p> > <p>The web server software is running but no content has been added, yet.</p> > </body></html> $ sudo tail -1 /var/log/apache2/rewrite.log > $ sudo tail -2 /var/log/apache2/error.log > [Sun Oct 25 18:13:13 2015] [notice] caught SIGTERM, shutting down > [Sun Oct 25 18:13:13 2015] [notice] Apache/2.2.22 (Ubuntu) configured -- resuming normal operations $ sudo tail -1 /var/log/apache2/access.log > 127.0.0.1 - - [25/Oct/2015:18:13:16 +0000] "GET / HTTP/1.1" 200 402 "-" "curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3" I've also posted this question to serverfault; here's a link in case anyone is into that sort of thing: http://serverfault.com/questions/731534/sanity-checking-mod-rewrite-for-apache-2-2-on-ubuntu-12-04 Cheers, Itamar