Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Httpd Wiki" for change 
notification.

The following page has been changed by slive:
http://wiki.apache.org/httpd/Recipes/QueryString

The comment on the change is:
Note that <Location> can't access the query string and add access control exmpl.

------------------------------------------------------------------------------
  
  The query string is the part of the URL that follows the question mark (?). 
It is often used to pass parameters to CGI scripts or other dynamic pages. It 
is typically available in the QUERY_STRING environment variable.
  
- The typical URL-manipulation directives such as {{{Redirect}}}, {{{Alias}}}, 
and {{{RewriteRule}}} cannot directly access the query string. But 
{{{mod_rewrite}}} can be used to add, remove, or modify the query string. The 
trick is to use a {{{RewriteCond}}} to match against the {{{%{QUERY_STRING} }}} 
variable and, if necessary, the {{{[QSA]}}} flag to append to an existing query 
string.
+ The typical URL-manipulation directives such as {{{<Location>}}}, 
{{{Redirect}}}, {{{Alias}}}, and {{{RewriteRule}}} cannot directly access the 
query string. But {{{mod_rewrite}}} can be used to add, remove, or modify the 
query string. The trick is to use a {{{RewriteCond}}} to match against the 
{{{%{QUERY_STRING} }}} variable and, if necessary, the {{{[QSA]}}} flag to 
append to an existing query string.
  
  Some examples follow. These examples all assume that they are placed in the 
main server configuration file. If they are placed in a {{{<Directory>}}} 
section or {{{.htaccess}}} file, the {{{RewriteRule}}} will need to be modified 
accordingly. Also, these examples can all be transformed from internal alias to 
external redirects by adding the {{{[R]}}} flag to the {{{RewriteRule}}}.
  
  Be cautious when dealing with complex query strings, since the order of the 
variables is often arbitrary. 
+ 
+ === Access control by Query String ===
+ 
+ Deny access to {{{http://example.com/page?query}}} if {{{query}}} contains 
the string {{{foo}}}.
+ 
+ {{{
+ # using mod_rewrite
+ RewriteCond %{QUERY_STRING} foo
+ RewriteRule ^/page - [F]
+ }}}
  
  === Removing the Query String ===
  

Reply via email to