httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Igor Cicimov <icici...@gmail.com>
Subject Re: [users@httpd] mod_rewrite and directory context
Date Tue, 05 Jun 2012 02:38:53 GMT
First this is wrong:

Options -Indexes +FollowSymLinks

You should never mix + and - in the Options.

Second if you read mod_rewrite docs you will see that QSA flag appends
something, which is why you have double "test" as rewrite result.

Igor
On Jun 5, 2012 4:29 AM, "Jimmy Thrasibule" <thrasibule.jimmy@gmail.com>
wrote:

> Hi,
>
> I'm trying to pass everything that is not a file to `index.php` as a
> request parameter without using a `.htaccess` file.
>
> A request to http://www.example.com/test must be rewritten to
> http://www.example.com/index.php?q=/test.
>
> I'm using Debian Squeeze (6.0) and Apache 2.2.16. Here is my
> configuration file:
>
> <VirtualHost *:80>
>  DocumentRoot /var/www/example
>  ServerName www.example.com
>  ServerAlias example.com
>
>  ErrorLog /var/log/apache2/error/example.log
>  CustomLog /var/log/apache2/access/example.log combined
>
>  <IfModule mod_rewrite.c>
>    RewriteEngine On
>
>    RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
>    RewriteRule ^/(.*) http://www.example.com/$1 [L,R=301]
>  </IfModule>
>
>  <Directory "/var/www/test">
>    AllowOverride None
>    Options -Indexes +FollowSymLinks
>    DirectoryIndex index.php
>
>    <IfModule mod_rewrite.c>
>      RewriteEngine On
>      RewriteCond %{REQUEST_FILENAME} !-f
>      RewriteCond %{REQUEST_FILENAME} !-d
>      RewriteCond %{REQUEST_URI} !=/favicon.ico
>      RewriteRule ^/(.*)$ index.php?q=$1 [L,QSA]
>    </IfModule>
>  </Directory>
> </VirtualHost>
>
> The first call to `mod_rewrite` within the _VirtualHost_ scope will as
> expected change example.com to www.example.com. But, the second call in
> the _Directory_ does not seems to work and calling
> http://www.example.com/test will throw a 404 error.
>
> Here is the result in the log file:
>
> (2) init rewrite engine with requested uri /test
> (3) applying pattern '^/(.*)' to uri '/test'
> (4) RewriteCond: input='www.example.com' pattern='!^www\.example\.com
> $' [NC] => not-matched
> (1) pass through /test
> (3) [perdir /var/www/example/] strip per-dir
> prefix: /var/www/example/test -> test
> (3) [perdir /var/www/example/] applying pattern '^/(.*)$' to uri 'test'
> (1) [perdir /var/www/example/] pass through /var/www/test/test
> File does not exist: /var/www/test/test
>
> What did I miss?
>
> --
> Jimmy
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
> For additional commands, e-mail: users-help@httpd.apache.org
>
>

Mime
View raw message