NAME Apache::Htaccess - Create and modify Apache .htaccess files SYNOPSIS use Apache::Htaccess; my $obj = Apache::Htaccess->new("htaccess"); die($Apache::Htaccess::ERROR) if $Apache::Htaccess::ERROR; $obj->global_requires(@groups); $obj->add_global_require(@groups); $obj->directives(CheckSpelling => 'on'); $obj->add_directive(CheckSpelling => 'on'); $obj->requires('admin.cgi',@groups); $obj->add_require('admin.cgi',@groups); $obj->save(); die($Apache::Htaccess::ERROR) if $Apache::Htaccess::ERROR; DESCRIPTION This module provides an OO interface to Apache .htaccess files. Currently the ability exists to read and write simple htaccess files. AUTHOR Matt Cashner COPYRIGHT All code is copyright (c) 2000 by The Creative Group. It may be distributed under the terms of Perl itself. METHODS new() my $obj = Apache::Htaccess->new($path_to_htaccess); Creates a new Htaccess object either with data loaded from an existing htaccess file or from scratch save() $obj->save(); Saves the htaccess file to the filename designated at object creation. This method is automatically called on object destruction. global_requires() $obj->global_requires(@groups); Sets the global group requirements. If no params are provided, will return a list of the current groups listed in the global require. Note: as of 0.3, passing this method a parameter list causes the global requires list to be overwritten with your parameters. see the add_global_require() entry elsewhere in this document. add_global_require() $obj->add_global_require(@groups); Sets a global require (or requires) nondestructively. Use this if you just want to add a few global requires without messing with all of the global requires entries. requires() $obj->requires($file,@groups); Sets a group requirement for a file. If no params are given, returns a list of the current groups listed in the files require directive. Note: as of 0.3, passing this method a parameter list causes the requires list to be overwritten with your parameters. see the add_require() entry elsewhere in this document. add_require() $obj->add_require($file,@groups); Sets a require (or requires) nondestructively. Use this if you just want to add a few requires without messing with all of the requires entries. directives() $obj->directives(CheckSpelling => 'on'); Sets misc directives not directly supported by the API. If no params are given, returns a list of current directives and their values. Note: as of 0.2, passing this method a parameter list causes the directive list to be overwritten with your parameters. see the add_directive() entry elsewhere in this document. add_directive() $obj->add_directive(CheckSpelling => 'on'); Sets a directive (or directives) nondestructively. Use this if you just want to add a few directives without messing with all of the directive entries. HISTORY $Log: README,v $ Revision 1.3 2000/09/29 15:51:27 matt *** empty log message *** Revision 1.12 2000/09/29 15:51:04 matt added global ERROR variable, changed global_require() to global_requires() Revision 1.11 2000/09/29 15:36:53 matt think i finally squashed the undef problem with requires() Revision 1.10 2000/09/29 15:20:36 matt made global_requires destructive and created add_global_require(), added better error responses to new() and save() Revision 1.9 2000/09/29 14:31:35 matt added new methods to the synopsis Revision 1.8 2000/09/29 14:25:46 matt made requires nondestructive and added add_require() Revision 1.7 2000/09/29 12:50:11 matt made directives() destructive and created the add_directive method() Revision 1.6 2000/09/27 18:43:23 matt added more return values. its amazing the little things i forget Revision 1.5 2000/09/27 18:30:34 matt fixed silly pod problem Revision 1.4 2000/09/27 18:23:46 matt added useful return values to save(). Revision 1.3 2000/09/27 18:19:34 matt parse now works and can parse htaccess files the module has created (or very similar files). added more docs Revision 1.2 2000/09/27 14:19:26 matt deparse now working, additional docs added Revision 1.1 2000/09/26 21:20:24 matt first nonfunctional version :) data structures are set up and accessor methods to those structures are ready. input and output of the file (note: the useful sections) are not yet written.