httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Johnny Edge" <je...@visafirst.com>
Subject RE: [users@httpd] mod rewrite issue
Date Thu, 19 Mar 2009 14:43:10 GMT
Thanks Krist, moving out the rewrite statements from <Directory> and before other rewrites
solved the problem.

J. 

-----Original Message-----
From: Krist van Besien [mailto:krist.vanbesien@gmail.com] 
Sent: 19 March 2009 13:07
To: users@httpd.apache.org
Subject: Re: [users@httpd] mod rewrite issue

On Wed, Mar 18, 2009 at 9:05 PM, Johnny Edge <jedge@visafirst.com> wrote:
>
> Hello,
>
> I have a Virtual host that utilizes mod rewrite in the following 
> manner
>
>
> <VirtualHost 192.168.0.127:80>
> ...
>
> RewriteEngine On
> RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f RewriteCond 
> %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d RewriteRule ^(.*) 
> /notfound.php?%{QUERY_STRING}
>
> i.e. missing documents are passed to notfound.php
>
> I also have a directory inside the VH which I want to pass such 
> requests to a different script
>
>
> <Directory "/var/www/html/info/admin/">
>  AuthName "Restricted"
>   NTLMAuth on
>   NTLMAuthHelper "/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp"
>   NTLMBasicAuthoritative on
>   AuthType NTLM
>   require valid-user
>
> RewriteEngine On
> RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f RewriteCond 
> %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d RewriteRule ^admin/(.*) 
> /admin/index.php?%{QUERY_STRING} [L]
>
> </Directory>
>
> Still, http://info/admin/nonexistent will call notfound.php and not 
> admin/index.php

Use:

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME}
!-d RewriteRule ^/info/admin/(.*) /admin/index.php?%{QUERY_STRING} [L]

And make sure that this is put _before_ the other RewriteRules, as it needs to match first.
It is not necessary to put this in a <Directory> block.
(RewriteRule processing takes place before the URL -> Filename translation, so directives
in <Directory> blocks are probably even ignored here)

Also, as you are not doing any query string mangling you can write your RewriteRule as:
RewriteRule ^/info/admin/(.*) /admin/index.php [QSA,L]

Krist

--
krist.vanbesien@gmail.com
krist@vanbesien.org
Bremgarten b. Bern, Switzerland
--
A: It reverses the normal flow of conversation.
Q: What's wrong with top-posting?
A: Top-posting.
Q: What's the biggest scourge on plain text email discussions?

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Mime
View raw message