# please keep sections in alpha order

# Graduated podlings
# N.B. Redirect  /abc baseUrl also redirects /abc/def to baseUrl/def

Redirect Permanent /abdera http://abdera.apache.org
Redirect Permanent /accumulo http://accumulo.apache.org
Redirect Permanent /ace http://ace.apache.org
Redirect Permanent /activemq http://activemq.apache.org
Redirect Permanent /airavata http://airavata.apache.org
Redirect Permanent /allura http://allura.apache.org
Redirect Permanent /ambari http://ambari.apache.org
Redirect Permanent /amber http://oltu.apache.org
Redirect Permanent /any23 http://any23.apache.org
Redirect Permanent /apollo http://ws.apache.org/wsrf
Redirect Permanent /aries http://aries.apache.org
Redirect Permanent /batchee http://batchee.incubator.apache.org
Redirect Permanent /beam https://beam.apache.org
Redirect Permanent /beehive http://beehive.apache.org
Redirect Permanent /bigtop http://bigtop.apache.org
Redirect Permanent /bloodhound http://bloodhound.apache.org
Redirect Permanent /buildr http://buildr.apache.org
Redirect Permanent /bval http://bval.apache.org
Redirect Permanent /callback http://cordova.apache.org
Redirect Permanent /cassandra http://cassandra.apache.org
Redirect Permanent /cayenne http://cayenne.apache.org
Redirect Permanent /celix http://celix.apache.org
Redirect Permanent /chemistry http://chemistry.apache.org
Redirect Permanent /chukwa http://chukwa.apache.org
Redirect Permanent /clerezza http://clerezza.apache.org
Redirect Permanent /click http://click.apache.org
Redirect Permanent /climate http://climate.apache.org
Redirect Permanent /cloudstack http://cloudstack.apache.org
Redirect Permanent /cordova http://cordova.apache.org
Redirect Permanent /couchdb http://couchdb.apache.org
Redirect Permanent /crunch http://crunch.apache.org
Redirect Permanent /ctakes http://ctakes.apache.org
Redirect Permanent /curator http://curator.apache.org
Redirect Permanent /cxf http://cxf.apache.org
Redirect Permanent /deltacloud http://deltacloud.apache.org
Redirect Permanent /deltaspike http://deltaspike.apache.org
Redirect Permanent /derby http://db.apache.org/derby
Redirect Permanent /devicemap http://devicemap.apache.org
Redirect Permanent /directmemory http://directmemory.apache.org
Redirect Permanent /directory http://directory.apache.org
Redirect Permanent /drill http://drill.apache.org
Redirect Permanent /eagle http://eagle.apache.org
Redirect Permanent /easyant http://ant.apache.org/easyant
Redirect Permanent /empire-db http://empire-db.apache.org
Redirect Permanent /esme http://esme.apache.org
Redirect Permanent /etch http://etch.apache.org
Redirect Permanent /felix http://felix.apache.org
Redirect Permanent /flex http://flex.apache.org
Redirect Permanent /flume http://flume.apache.org
Redirect Permanent /ftpserver http://mina.apache.org/ftpserver
Redirect Permanent /geode http://geode.apache.org
Redirect Permanent /geronimo http://geronimo.apache.org
Redirect Permanent /giraph http://giraph.apache.org
Redirect Permanent /gora http://gora.apache.org
Redirect Permanent /hama http://hama.apache.org
Redirect Permanent /harmony http://harmony.apache.org
Redirect Permanent /hcatalog http://hive.apache.org
Redirect Permanent /helix http://helix.incubator.apache.org/
Redirect Permanent /hermes http://ws.apache.org/pubscribe
##httpd-cli - where did that go?
Redirect Permanent /ibatis http://ibatis.apache.org
Redirect Permanent /ivy http://ant.apache.org/ivy
Redirect Permanent /jackrabbit http://jackrabbit.apache.org
Redirect Permanent /jaxme http://ws.apache.org/jaxme
Redirect Permanent /jclouds http://jclouds.apache.org
Redirect Permanent /jdo http://db.apache.org/jdo
Redirect Permanent /jena http://jena.apache.org
Redirect Permanent /jspwiki http://jspwiki.apache.org
Redirect Permanent /juddi http://juddi.apache.org
Redirect Permanent /knox http://knox.apache.org
Redirect Permanent /lenya http://lenya.apache.org
Redirect Permanent /libcloud http://libcloud.apache.org
Redirect Permanent /log4cxx http://logging.apache.org/log4cxx
Redirect Permanent /log4net http://logging.apache.org/log4net
Redirect Permanent /log4php http://logging.apache.org/log4php
Redirect Permanent /lucene.net http://lucenenet.apache.org
Redirect Permanent /lucy http://lucy.apache.org
Redirect Permanent /marmotta http://marmotta.apache.org
##merlin-developer - where did that go?
Redirect Permanent /mesos http://mesos.apache.org
Redirect Permanent /metamodel http://metamodel.apache.org
Redirect Permanent /mod_ftp http://httpd.apache.org/mod_ftp
Redirect Permanent /mrunit http://mrunit.apache.org
Redirect Permanent /muse http://ws.apache.org/muse
Redirect Permanent /myfaces http://myfaces.apache.org
Redirect Permanent /nutch http://lucene.apache.org/nutch
Redirect Permanent /ode http://ode.apache.org
Redirect Permanent /ofbiz http://ofbiz.apache.org
Redirect Permanent /ognl http://commons.apache.org/ognl
Redirect Permanent /olingo http://olingo.apache.org
Redirect Permanent /onami http://onami.apache.org
Redirect Permanent /oodt http://oodt.apache.org
Redirect Permanent /oozie http://oozie.apache.org
Redirect Permanent /openejb http://openejb.apache.org
Redirect Permanent /openjpa http://openjpa.apache.org
Redirect Permanent /openmeetings http://openmeetings.apache.org
Redirect Permanent /opennlp http://opennlp.apache.org
Redirect Permanent /openofficeorg http://openoffice.apache.org
Redirect Permanent /openwebbeans http://openwebbeans.apache.org
Redirect Permanent /pdfbox http://pdfbox.apache.org
Redirect Permanent /phoenix http://phoenix.apache.org
Redirect Permanent /pig http://hadoop.apache.org/pig
Redirect Permanent /pivot http://pivot.apache.org
Redirect Permanent /pluto http://portals.apache.org/pluto
Redirect Permanent /qpid http://qpid.apache.org
Redirect Permanent /rat http://creadur.apache.org
Redirect Permanent /rave http://rave.apache.org
Redirect Permanent /ripple http://ripple.incubator.apache.org
Redirect Permanent /river http://river.apache.org
Redirect Permanent /roller http://roller.apache.org
Redirect Permanent /sanselan http://commons.apache.org/sanselan
Redirect Permanent /sentry http://sentry.apache.org
Redirect Permanent /servicemix http://servicemix.apache.org
Redirect Permanent /shindig http://shindig.apache.org
Redirect Permanent /shiro http://shiro.apache.org
Redirect Permanent /sirona http://sirona.incubator.apache.org
Redirect Permanent /sis http://sis.apache.org
Redirect Permanent /sling http://sling.apache.org
Redirect Permanent /solr http://lucene.apache.org/solr
Redirect Permanent /spamassasin http://spamassasin.apache.org
Redirect Permanent /spark http://spark.apache.org
Redirect Permanent /sqoop http://sqoop.apache.org
Redirect Permanent /stanbol http://stanbol.apache.org
Redirect Permanent /stdcxx http://stdcxx.apache.org
Redirect Permanent /storm http://storm.apache.org
Redirect Permanent /subversion http://subversion.apache.org
Redirect Permanent /synapse http://ws.apache.org/synapse
Redirect Permanent /tajo http://tajo.apache.org
Redirect Permanent /tapestry http://tapestry.apache.org
Redirect Permanent /tez http://tez.apache.org
Redirect Permanent /thrift http://thrift.apache.org
Redirect Permanent /tika http://lucene.apache.org/tika
Redirect Permanent /tobago http://myfaces.apache.org/tobago
Redirect Permanent /trafficserver http://trafficserver.apache.org
Redirect Permanent /trinidad http://myfaces.apache.org/trinidad
Redirect Permanent /tuscany http://tuscany.apache.org
Redirect Permanent /vxquery http://vxquery.apache.org
Redirect Permanent /uima http://uima.apache.org
Redirect Permanent /webwork2 http://struts.apache.org
Redirect Permanent /whirr http://whirr.apache.org
Redirect Permanent /wicket http://wicket.apache.org
Redirect Permanent /wink http://wink.apache.org
Redirect Permanent /woden http://ws.apache.org/woden
Redirect Permanent /wookie http://wookie.apache.org
Redirect Permanent /xmlbeans http://xmlbeans.apache.org

# retired podlings
# All URLs must be redirected to the status page as the original site as been dropped
# N.B. This can only be done here for old-style URLs under i.a.o
# For svnpubsub sites, set up the .htaccess file under:
# https://svn.apache.org/repos/asf/incubator/<podling>/site/[publish|etc]
#
# For podling.incubator.apache.org URLs using gitpubsub:
# Something like the following:
# https://gitbox.apache.org/repos/asf/incubator-retired-<podling>-site.git
# However this appears to be read-only
#
RedirectMatch Permanent ^/agila(/.*)?$ http://incubator.apache.org/projects/agila.html
RedirectMatch Permanent ^/alois(/.*)?$ http://incubator.apache.org/projects/alois.html
RedirectMatch Permanent ^/altrmi(/.*)?$ http://incubator.apache.org/projects/altrmi.html
RedirectMatch Permanent ^/awf(/.*)?$ http://incubator.apache.org/projects/awf.html
RedirectMatch Permanent ^/axion(/.*)?$ http://incubator.apache.org/projects/axion.html
RedirectMatch Permanent ^/bluesky(/.*)?$ http://incubator.apache.org/projects/bluesky.html
RedirectMatch Permanent ^/blur(/.*)?$ http://incubator.apache.org/projects/blur.html
RedirectMatch Permanent ^/composer(/.*)?$ http://incubator.apache.org/projects/composer.html
# https://svn.apache.org/repos/asf/incubator/concerted/site/.htaccess
RedirectMatch Permanent ^/corinthia(/.*)?$ http://incubator.apache.org/projects/corinthia.html
# https://svn.apache.org/repos/asf/incubator/cotton/site/publish/.htaccess
RedirectMatch Permanent ^/depot(/.*)?$ http://incubator.apache.org/projects/depot.html
RedirectMatch Permanent ^/droids(/.*)?$ http://incubator.apache.org/projects/droids.html
RedirectMatch Permanent ^/graffito(/.*)?$ http://incubator.apache.org/projects/graffito.html
# TODO http://hdt.incubator.apache.org/
RedirectMatch Permanent ^/heraldry(/.*)?$ http://incubator.apache.org/projects/heraldry.html
RedirectMatch Permanent ^/hise(/.*)?$ http://incubator.apache.org/projects/hise.html
RedirectMatch Permanent ^/imperius(/.*)?$ http://incubator.apache.org/projects/imperius.html
RedirectMatch Permanent ^/juice(/.*)?$ http://incubator.apache.org/projects/juice.html
RedirectMatch Permanent ^/kabuki(/.*)?$ http://incubator.apache.org/projects/kabuki.html
RedirectMatch Permanent ^/kalumet(/.*)?$ http://incubator.apache.org/projects/kalumet.html
RedirectMatch Permanent ^/kato(/.*)?$ http://incubator.apache.org/projects/kato.html
RedirectMatch Permanent ^/kitty(/.*)?$ http://incubator.apache.org/projects/kitty.html
RedirectMatch Permanent ^/lokahi(/.*)?$ http://incubator.apache.org/projects/lokahi.html
RedirectMatch Permanent ^/lucene4c(/.*)?$ http://incubator.apache.org/projects/lucene4c.html
RedirectMatch Permanent ^/nmaven(/.*)?$ http://incubator.apache.org/projects/nmaven.html
RedirectMatch Permanent ^/npanday(/.*)?$ http://incubator.apache.org/projects/npanday.html
RedirectMatch Permanent ^/olio(/.*)?$ http://incubator.apache.org/projects/olio.html
# TODO http://openaz.incubator.apache.org/
RedirectMatch Permanent ^/photark(/.*)?$ http://incubator.apache.org/projects/photark.html
# TODO http://pirk.incubator.apache.org/
RedirectMatch Permanent ^/provisionr(/.*)?$ http://incubator.apache.org/projects/provisionr.html
RedirectMatch Permanent ^/rcf(/.*)?$ http://incubator.apache.org/projects/rcf.html
RedirectMatch Permanent ^/ripple(/.*)?$ http://incubator.apache.org/projects/ripple.html
RedirectMatch Permanent ^/s4(/.*)?$ http://incubator.apache.org/projects/s4.html
RedirectMatch Permanent ^/socialsite(/.*)?$ http://incubator.apache.org/projects/socialsite.html
RedirectMatch Permanent ^/stonehenge(/.*)?$ http://incubator.apache.org/projects/stonehenge.html
RedirectMatch Permanent ^/tashi(/.*)?$ http://incubator.apache.org/projects/tashi.html
RedirectMatch Permanent ^/triplesoup(/.*)?$ http://incubator.apache.org/projects/triplesoup.html
RedirectMatch Permanent ^/tsik(/.*)?$ http://incubator.apache.org/projects/tsik.html
RedirectMatch Permanent ^/wadi(/.*)?$ http://incubator.apache.org/projects/wadi.html
RedirectMatch Permanent ^/wave(/.*)?$ http://incubator.apache.org/projects/wave.html
RedirectMatch Permanent ^/wsrp4j(/.*)?$ http://incubator.apache.org/projects/wsrp4j.html
RedirectMatch Permanent ^/xap(/.*)?$ http://incubator.apache.org/projects/xap.html
RedirectMatch Permanent ^/xmlbeanscxx(/.*)?$ http://incubator.apache.org/projects/xmlbeanscxx.html
RedirectMatch Permanent ^/yoko(/.*)?$ http://incubator.apache.org/projects/yoko.html
RedirectMatch Permanent ^/zetacomponents(/.*)?$ http://incubator.apache.org/projects/zetacomponents.html

# from the old webiste
Redirect Permanent /incubation/Incubation_Policy.html /policy/incubation.html
Redirect Permanent /incubation/Process_Description.html /policy/process.html
Redirect Permanent /incubation/Roles_and_Responsibilities.html /guides/roles_and_responsibilities.html
Redirect Permanent /policy/Roles_and_Responsibilities.html /guides/roles_and_responsibilities.html

# other URLs
RedirectMatch Permanent howtoparticipate.html /guides/participation.html
RedirectMatch Permanent clutch.html /clutch/index.html
Redirect Permanent /falcon http://falcon.apache.org
Redirect Permanent /flink http://flink.apache.org
Redirect Permanent /samza http://samza.apache.org
Redirect Permanent /parquet http://parquet.apache.org
Redirect Permanent /ignite http://ignite.apache.org
Redirect Permanent /lens http://lens.apache.org
Redirect Permanent /usergrid http://usergrid.apache.org
Redirect Permanent /calcite http://calcite.apache.org
Redirect Permanent /brooklyn http://brooklyn.apache.org
Redirect Permanent /reef http://reef.apache.org
Redirect Permanent /kylin http://kylin.apache.org

# Restore access to podlings.*
RedirectMatch ^/(podlings.*)$ "https://svn.apache.org/repos/asf/incubator/public/trunk/content/$1"
