You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by howard chen <ho...@gmail.com> on 2009/07/16 17:37:50 UTC

[users@httpd] mod_rewrite question

A simple rewrite rule:


RewriteRule ^/(.*)  /index.php?q=test1  [QSA]
RewriteRule ^/test2  /index.php?q=test2  [QSA,L]


The above rules rewrite everything to "q=test1", even I enter the URL
= http://www.example.com/test2

How to do the following...

=> Rewrite all url, except /test2, with the query string q=test1. If
url is /test2, rewrite as "q=test2"


Thanks.

---------------------------------------------------------------------
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


Re: [users@httpd] mod_rewrite question

Posted by Eric Covener <co...@gmail.com>.
On Thu, Jul 16, 2009 at 12:57 PM, Jonathan
Zuckerman<j....@gmail.com> wrote:

> Eric, I've wondered about the L flag in htaccess and often considered
> it a bug that it does not work as it does outside of htaccess, I've
> searched the documentation but this is sort of an esoteric thing to
> think up a keyword for so pardon me if this is explained there, but
> why does the L flag not work (or work differently) in .htaccess?

In htaccess, the request has already been mapped to a file, so after
any change the entire request is re-processed (apache-wise, not just
rewrite-wise).

In this context, L just stops the current request from being
processed, not the request used to re-insert the request into the
Apache processing.

-- 
Eric Covener
covener@gmail.com

---------------------------------------------------------------------
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


Re: [users@httpd] mod_rewrite question

Posted by Jonathan Zuckerman <j....@gmail.com>.
On Thu, Jul 16, 2009 at 8:42 AM, Eric Covener<co...@gmail.com> wrote:
> On Thu, Jul 16, 2009 at 11:37 AM, howard chen<ho...@gmail.com> wrote:
>> A simple rewrite rule:
>>
>>
>> RewriteRule ^/(.*)  /index.php?q=test1  [QSA]
>> RewriteRule ^/test2  /index.php?q=test2  [QSA,L]
>>
>>
>> The above rules rewrite everything to "q=test1", even I enter the URL
>> = http://www.example.com/test2
>>
>> How to do the following...
>>
>> => Rewrite all url, except /test2, with the query string q=test1. If
>> url is /test2, rewrite as "q=test2"
>>
>
> Reverse them if not in htaccess. If In htacces, protect with
> RewriteCond %{REQUEST_URI} ...
>
>
>
>
> --
> Eric Covener
> covener@gmail.com
>
> ---------------------------------------------------------------------
> 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
>
>

Eric, I've wondered about the L flag in htaccess and often considered
it a bug that it does not work as it does outside of htaccess, I've
searched the documentation but this is sort of an esoteric thing to
think up a keyword for so pardon me if this is explained there, but
why does the L flag not work (or work differently) in .htaccess?

---------------------------------------------------------------------
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


Re: [users@httpd] mod_rewrite question

Posted by Eric Covener <co...@gmail.com>.
On Thu, Jul 16, 2009 at 11:37 AM, howard chen<ho...@gmail.com> wrote:
> A simple rewrite rule:
>
>
> RewriteRule ^/(.*)  /index.php?q=test1  [QSA]
> RewriteRule ^/test2  /index.php?q=test2  [QSA,L]
>
>
> The above rules rewrite everything to "q=test1", even I enter the URL
> = http://www.example.com/test2
>
> How to do the following...
>
> => Rewrite all url, except /test2, with the query string q=test1. If
> url is /test2, rewrite as "q=test2"
>

Reverse them if not in htaccess. If In htacces, protect with
RewriteCond %{REQUEST_URI} ...




-- 
Eric Covener
covener@gmail.com

---------------------------------------------------------------------
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