# These are suggested Rewrite Rules for use with TikiWiki.
# They enhance security and permit short URLS. 
#
# To use
# 1- rename _htaccess to .htaccess
# or
# 2- add the content of this file to your httpd.conf
#
# Please find more info here
# http://doc.tikiwiki.org/Rewrite+Rules
#
# This prevents reading of files with certain extensions.
<FilesMatch "\.(bak|inc|lib|sh|tpl|sql)$">
	order deny,allow
	deny from all
</FilesMatch>

<IfModule mod_rewrite.c>
RewriteEngine On

# direct one-word access
RewriteRule ^calendar$             tiki-calendar.php                        [L]
RewriteRule ^articles$             tiki-view_articles.php                   [L]
RewriteRule ^blogs$                tiki-list_blogs.php                      [L]
RewriteRule ^categories$           tiki-browse_categories.php               [L]
RewriteRule ^charts$               tiki-list_charts.php                     [L]
RewriteRule ^chat$                 tiki-chat.php                            [L]
RewriteRule ^contact$              tiki-contact.php                         [L]
RewriteRule ^directories$          tiki-directory_browse.php                [L]
RewriteRule ^faqs$                 tiki-list_faqs.php                       [L]
RewriteRule ^files$                tiki-file_galleries.php                  [L]
RewriteRule ^forums$               tiki-forums.php                          [L]
RewriteRule ^images$               tiki-galleries.php                       [L]
RewriteRule ^galleries$            tiki-galleries.php                       [L]
RewriteRule ^games$                tiki-list_games.php                      [L]
RewriteRule ^login$                tiki-login.php                           [L]
RewriteRule ^my$                   tiki-my_tiki.php                         [L]
RewriteRule ^newsletters$          tiki-newsletters.php                     [L]
RewriteRule ^quizzes$              tiki-list_quizzes.php                    [L]
RewriteRule ^stats$                tiki-stats.php                           [L]
RewriteRule ^surveys$              tiki-list_surveys.php                    [L]
RewriteRule ^trackers$             tiki-list_trackers.php                   [L]
RewriteRule ^irc$                  tiki-irc_logs.php                        [L]
RewriteRule ^mobile$               tiki-mobile.php                          [L]
RewriteRule ^wml$                  tiki-mobile.php                          [L]
RewriteRule ^sheets$               tiki-sheets.php                          [L]
RewriteRule ^workspaces$           tiki-workspaces_admin.php                [L]

# access any object by its numeric identifier
RewriteRule ^article([0-9]+)       tiki-read_article.php?articleId=$1       [QSA,L]
RewriteRule ^art([0-9]+)           tiki-read_article.php?articleId=$1       [QSA,L]
RewriteRule ^cat([0-9]+)           tiki-browse_categories.php?parentId=$1   [QSA,L]
RewriteRule ^blog([0-9]+)          tiki-view_blog.php?blogId=$1             [QSA,L]
RewriteRule ^blogpost([0-9]+)      tiki-view_blog_post.php?postId=$1        [QSA,L]
RewriteRule ^chart([0-9]+)         tiki-view_chart.php?chartId=$1           [QSA,L]
RewriteRule ^directory([0-9]+)     tiki-directory_browse.php?parent=$1      [QSA,L]
RewriteRule ^faq([0-9]+)           tiki-view_faq.php?faqId=$1               [QSA,L]
RewriteRule ^file([0-9]+)          tiki-list_file_gallery.php?galleryId=$1  [QSA,L]
RewriteRule ^dl([0-9]+)            tiki-download_file.php?fileId=$1         [QSA,L]
RewriteRule ^forum([0-9]+)         tiki-view_forum.php?forumId=$1           [QSA,L]
RewriteRule ^image([0-9]+)         show_image.php?id=$1                     [QSA,L]
RewriteRule ^gallery([0-9]+)       tiki-browse_gallery.php?galleryId=$1     [QSA,L]
RewriteRule ^newsletter([0-9]+)    tiki-newsletters.php?nlId=$1             [QSA,L]
RewriteRule ^quiz([0-9]+)          tiki-take_quiz.php?quizId=$1             [QSA,L]
RewriteRule ^survey([0-9]+)        tiki-take_survey.php?surveyId=$1         [QSA,L]
RewriteRule ^tracker([0-9]+)       tiki-view_tracker.php?trackerId=$1       [QSA,L]
RewriteRule ^wiki-([A-Za-z0-9]+)   tiki-index.php?page=$1                   [QSA,L]
RewriteRule ^page-([A-Za-z0-9]+)   tiki-index.php?page=$1                   [QSA,L]
RewriteRule ^irc([0-9]+)           tiki-irc_logs.php?focus=$1               [QSA,L]
RewriteRule ^int([0-9]+)           tiki-integrator.php?repID=$1             [QSA,L]
RewriteRule ^sheet([0-9]+)         tiki-view_sheets.php?sheetId=$1          [QSA,L]
RewriteRule ^ws([0-9]+)            tiki-workspaces_desktop.php?workspaceId=$1    [QSA,L]

RewriteRule \.(css|gif|jpg|png|php|html|js|htm|shtml|cgi|sql|phtml|txt|ihtml)   -       [L]

# todo add support for all characters allowed in a Wiki name
# make sure this is the last rule!
RewriteRule ^show:(~?)([-_\+A-Za-z0-9]+)$  tiki-slideshow.php?page=$1$2      [QSA,L]
RewriteRule     ^([^/\.]+)$    tiki-index.php?page=$1                   [QSA,L]

# how to redierct to a wiki page on a not found error: take away the comment + adapt the pagename 
# ErrorDocument 404 tiki-index.php?page=Page+not+found

</IfModule>
# End of rewrite rules
