#
# .htaccess file for MythWeb.  Please read the descriptive comments for help
# using these directives in your own setup.  If you so desire (and for a small
# increase in efficiency, you can put this entire block into the apache config
# for your MythWeb host configuration).
#
# See http://www.mythtv.org/ for information about MythTV itself.
#
# @url       $URL$
# @date      $Date: 2006-06-28 13:33:11 -0500 (Wed, 28 Jun 2006) $
# @version   $Revision: 10338 $
# @author    $Author: xris $
#

#
# I *strongly* urge you to turn on authentication for MythWeb.  It is disabled
# by default because it requires you to set up your own password file.  Please
# see the man page for htdigest and then configure the folowing four directives
# to suit your authentication needs.
#
#    AuthType           Digest
#    AuthName           "MythTV"
#    AuthUserFile       /var/www/htdigest
#    Require            valid-user
#    BrowserMatch       "MSIE"      AuthDigestEnableQueryStringHack=On
#
#  * If you're running Apache earlier than 2.2, you will need to use
#    AuthDigestFile instead of AuthUserFile.

# MythTV now uses the correct file suffix for mpeg files, so all .nuv files
# should actually be NuppleVideo.  However, apache probably doesn't know what
# those are, so we should tell it.
    AddType video/nuppelvideo   .nuv

# Specify the MIME type for favicon.ico in case the server configuration
# doesn't or in case the server configuration uses the IANA-approved MIME type
# (image/vnd.microsoft.icon)--which most browsers won't recognize.
    AddType image/x-icon        .ico

# Some special instructions for the PHP files of MythWeb.
    <Files mythweb.*>

    #
    # Use the following environment settings to tell MythWeb where you want it to
    # look to connect to the database, the name of the database to connect to, and
    # the authentication info to use to connect.  The defaults will usually work
    # fine unless you've changed mythtv's mysql.txt file, or are running MythWeb on
    # a different server from your main backend.  Make sure you have mod_env enabled.
    #
        setenv db_server        "localhost"
        setenv db_name          "mythconverg"
        setenv db_login         "mythtv"
        setenv db_password      "mythtv"

    #
    # By default, MythWeb uses the hostname program to look up the hostname of the
    # machine it runs on.  If this reports incorrect data, or you run MythWeb on a
    # machine without the hostname program, set this to your current hostname.
    #
    #   setenv hostname         "my_mythbox"
    #

    # By default, php will always search the current directory for include files,
    # but if you wish to install these directories outside of the current path
    # (eg. for security reasons), set this variable to the directory that
    # contains the directories like languages and templates.  eg.
    #
    #   setenv include_path      "/usr/share/mythweb"

    # If you want MythWeb to email php/database errors (and a backtrace) to you,
    # uncomment and set the email address below.
    #
    #   setenv error_email       "mythweb_errors@example.com"
    #

    # If your local file system is something other than UTF-8, set this variable
    # so that the music and video portions of MythWeb can provide proper links
    # to your downloadable files.
    #
    #   setenv fs_encoding       "ISO-8859-1"

    #  These settings are intended for apache 2.x.  If your version of apache
    #  doesn't support php_value, or things like memory_limit aren't working
    #  as expected, then use these settings as examples for your own php.ini
    #  files.
        php_value safe_mode                     0

        php_value memory_limit                  32M

        php_value output_buffering              4096
        php_value register_globals              0
        php_value magic_quotes_gpc              0
        php_value file_uploads                  0
        php_value allow_url_fopen               On

        php_value zlib.output_handler           Off
        php_value zlib.output_compression       16384
        php_value zlib.output_compression_level 4

        php_value url_rewriter.tags             a=href,area=href,frame=src,input=src,form=action

    # These values do not change - bug in php
        php_value output_handler                NULL

    # php_flag does not work in older versions of php
        php_flag output_handler                 "NULL"
        php_flag short_open_tag                 "On"

    </Files>

# Execute perl scripts in cgi mode (so we can stream properly)
    <Files *.pl>
        SetHandler cgi-script
        Options    +ExecCGI
    </Files>

#
# The settings below relate specifically to mod_rewrite and the rewrite engine
# used to make the MythWeb user experience a little easier to deal with by
# simplifying the URL's neeced to access the various sections.  Do not touch
# these settings unless you really know what you're doing..
#

# Turn on the rewrite engine
    RewriteEngine  on

# If MythWeb is installed outside of the document root (eg. using Alias) then
# you will need to set this directive to the base URL that MythWeb is visible
# from externally.  If you do not, the web server will return 'not found'.  eg.
#    RewriteBase    /mythweb

# Skip out early if we've already been through rewrites,
# or if this is a /css/, /js/ or /cache/ directory request.
    RewriteRule    ^(css|data|images|js|themes|skins|[a-z_]+\.(php|pl))(/|$)     -     [L]

# Redirect /pl/ requests to the perl cgi handler.
    RewriteRule     ^(pl(/.*)?)$            mythweb.pl/$1               [QSA,L]

# Redirect most of the remaining URL requests to the main mythweb script.
# It will then handle any requests given to it.
    RewriteRule     ^(.+)$                  mythweb.php/$1              [QSA,L]

# If you're experiencing trouble with the previous two lines in your copy of
# apache, you could instead use something like:
#    RewriteRule     ^(pl(/.*)?)$           mythweb.pl?PATH_INFO=/$1    [L,QSA]
#    RewriteRule     ^(.+)$                 mythweb.php?PATH_INFO=/$1   [L,QSA]

# Catch anything else that comes through and send it to mythweb.php with no parameters.
    RewriteRule     ^(.*)$                  mythweb.php                 [QSA,L]
