GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
work::mod_perl-2.0.13::docs::api::Apache2::URI(3) User Contributed Perl Documentation work::mod_perl-2.0.13::docs::api::Apache2::URI(3)

Apache2::URI - Perl API for manipulating URIs

  use Apache2::URI ();
  
  $hostport = $r->construct_server();
  $hostport = $r->construct_server($hostname);
  $hostport = $r->construct_server($hostname, $port);
  $hostport = $r->construct_server($hostname, $port, $pool);
  
  $url = $r->construct_url();
  $url = $r->construct_url($rel_uri);
  $url = $r->construct_url($rel_uri, $pool);
  
  $parsed_uri = $r->parse_uri($uri);
  
  $parsed_uri = $r->parsed_uri();
  
  $url = join '%20', qw(one two three);
  Apache2::URI::unescape_url($url);

While "APR::URI" provides a generic API to dissect, adjust and put together any given URI string, "Apache2::URI" provides an API specific to Apache, by taking the information directly from the $r object. Therefore when manipulating the URI of the current HTTP request usually methods from both classes are used.

"Apache2::URI" provides the following functions and methods:

Construct a string made of hostname and port

  $hostport = $r->construct_server();
  $hostport = $r->construct_server($hostname);
  $hostport = $r->construct_server($hostname, $port);
  $hostport = $r->construct_server($hostname, $port, $pool);
The current request object
The hostname of the server.

If that argument is not passed, "$r->get_server_name" is used.

The port the server is running on.

If that argument is not passed, "$r->get_server_port" is used.

The pool to allocate the string from.

If that argument is not passed, "$r->pool" is used.

The server's hostport string

Examples:

  • Assuming that:

      $r->get_server_name == "localhost";
      $r->get_server_port == 8001;
        

    The code:

      $hostport = $r->construct_server();
        

    returns a string:

      localhost:8001
        
  • The following code sets the values explicitly:

      $hostport = $r->construct_server("my.example.com", 8888);
        

    and it returns a string:

      my.example.com:8888
        

Build a fully qualified URL from the uri and information in the request rec:

  $url = $r->construct_url();
  $url = $r->construct_url($rel_uri);
  $url = $r->construct_url($rel_uri, $pool);
The current request object
The path to the requested file (it may include a concatenation of path, query and fragment components).

If that argument is not passed, "$r->uri" is used.

The pool to allocate the URL from

If that argument is not passed, "$r->pool" is used.

A fully qualified URL

Examples:

  • Assuming that the request was

      http://localhost.localdomain:8529/test?args
        

    The code:

      my $url = $r->construct_url;
        

    returns the string:

      http://localhost.localdomain:8529/test
        

    notice that the query (args) component is not in the string. You need to append it manually if it's needed.

  • Assuming that the request was

      http://localhost.localdomain:8529/test?args
        

    The code:

      my $rel_uri = "/foo/bar?tar";
      my $url = $r->construct_url($rel_uri);
        

    returns the string:

      http://localhost.localdomain:8529/foo/bar?tar
        

Break apart URI (affecting the current request's uri components)

  $r->parse_uri($uri);
The current request object
The uri to break apart
This method has several side-effects explained below

This method call has the following side-effects:

1.
sets "$r->args" to the rest after '?' if such exists in the passed $uri, otherwise sets it to "undef".
2.
sets "$r->uri" to the passed $uri without the "$r->args" part.
3.
sets "$r->hostname" (if not set already) using the ("scheme://host:port") parts of the passed $uri.

Get the current request's parsed uri object

  my $uri = $r->parsed_uri();
The current request object
The parsed uri
This object is suitable for using with "APR::URI::rpath"

Unescape URLs

  Apache2::URI::unescape_url($url);
The URL to unescape
The argument $url is now unescaped

Example:

  my $url = join '%20', qw(one two three);
  Apache2::URI::unescape_url($url);

$url now contains the string:

  "one two three";

"APR::URI", mod_perl 2.0 documentation.

mod_perl 2.0 and its core modules are copyrighted under The Apache Software License, Version 2.0.

The mod_perl development team and numerous contributors.

2023-10-21 perl v5.40.2

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.