+"product" category in general.
[www.jankratochvil.net.git] / .htaccess
index f93e228..62d59b2 100644 (file)
--- a/.htaccess
+++ b/.htaccess
@@ -1,60 +1,68 @@
-DirectoryIndex Index.html.pl
+<IfModule mod_dir.c>
+       DirectoryIndex _NOTEXISTS
+       IndexOptions NameWidth=*
+</IfModule>
+
+Options None
+<IfModule !mod_perl.c>
+       Options +Indexes
+       # For "*.shtml" as "./project/Islet/Islet/Islet.shtml" etc.
+       Options +Includes
+       # Prevent: Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden
+       Options +SymLinksIfOwnerMatch
+</IfModule>
 
-AddType text/html .shtml
 AddHandler server-parsed .shtml
+AddHandler cgi-script .cgi
+
 AddType "text/html; charset=us-ascii" .html
 AddType "text/html; charset=us-ascii" .shtml
 AddType "text/plain; charset=us-ascii" .txt
 AddType "text/plain; charset=us-ascii" .asc
-Options Indexes Includes FollowSymLinks
-<FilesMatch "\.(gz|Z|bz|bz2|zip)$">
-       RemoveEncoding .gz .Z .bz .bz2 .zip
-       AddType application/x-gzip .gz
-       AddType application/x-compress .Z
-       AddType application/x-bzip .bz
-       AddType application/x-bzip2 .bz2
-       AddType application/zip .zip
-</FilesMatch>
-
-AddHandler cgi-script .cgi
-IndexOptions NameWidth=*
 AddType application/x-rpm .rpm
 AddType application/x-nokia-9000-communicator-add-on-software .aos
-<IfModule mod_php4.c>
+AddType application/vnd.symbian.install .sis
+
+RemoveEncoding .gz .Z .bz .bz2 .zip
+AddType application/x-gzip .gz
+AddType application/x-compress .Z
+AddType application/x-bzip .bz
+AddType application/x-bzip2 .bz2
+AddType application/zip .zip
+
+# Do not: text/javascript
+# as it does not look as registered, at least according to: MIME::Types $VERSION 1.15
+# "application/javascript" so far standardized till 2005-12-08 by:
+#      http://www.ietf.org/internet-drafts/draft-hoehrmann-script-types-03.txt
+AddType application/javascript .js
+
+<IfModule mod_php.c>
        php_flag short_open_tag off
        php_flag magic_quotes_gpc off
        php_flag magic_quotes_runtime off
 </IfModule>
 
-<Files "kocky">
-       RewriteEngine on
-       RewriteRule ^(/home/short/www/www.jankratochvil.net/)?kocky/*(.*)$ http://kocky.vellum.cz/$2 [R=301] [L]
-</Files>
-<Files "4c">
-       RewriteEngine on
-       RewriteRule ^(/home/short/www/www.jankratochvil.net/)?4c/*(.*)$ http://4c.jankratochvil.net/$2 [R=301] [L]
-</Files>
-<Files "cgi">
+<IfModule mod_rewrite.c>
+       # Do not: [R=301] [L]
+       # as any non-1st brackets' contents would get ignored!
+       # Use always suffix: ?${unescape:%{QUERY_STRING}}
+       # as $QUERY_STRING gets otherwise double-escaped (or if "NE" the path gets unescaped).
+       # FIXME: Should be applied also for the "P" rules?
+       # WARNING: Requires server/virtualhost definition: RewriteMap unescape int:unescape
        RewriteEngine on
-       #            $1                                                  $2$3    $4
-       RewriteRule ^(/home/short/www/www.jankratochvil.net/)?cgi/viewcvs(/(.*))?([?].*)?$ http://cvs.jankratochvil.net/viewcvs/$3$4 [R=301] [L]
-       RewriteRule ^(/home/short/www/www.jankratochvil.net/)?cgi/*(.*)$ http://www.jankratochvil.net/cgi-bin/$2 [R=301] [L]
-</Files>
-<Files "sw">
-       RewriteEngine on
-       RewriteRule ^(/home/short/www/www.jankratochvil.net/)?sw/*(.*)$ http://www.jankratochvil.net/project/ [R=301] [L]
-</Files>
-<Files "projects">
-       RewriteEngine on
-       RewriteRule ^(/home/short/www/www.jankratochvil.net/)?projects/*(.*)$ http://www.jankratochvil.net/project/$2 [R=301] [L]
-</Files>
-
-<IfDefine SSL>
-       <Files "*.pl">
-               RewriteEngine on
-               RewriteRule ^.*?/www[.]jankratochvil[.]net/(.*)$ http://localhost:7680/$1 [P]
-       </Files>
-</IfDefine>
-<IfDefine !SSL>
-       Options +ExecCGI
-</IfDefine>
+       RewriteRule ^kocky(|/.*)$ http://kocky.vellum.cz/$1?${unescape:%{QUERY_STRING}} [R=301,L]
+       RewriteRule ^(4cinfo|4c)(|/.*)$ http://4c.jankratochvil.net/$2?${unescape:%{QUERY_STRING}} [R=301,L]
+       RewriteRule ^sw(|/.*)$ http://%{SERVER_NAME}/project$1?${unescape:%{QUERY_STRING}} [R=301,L]
+       RewriteRule ^(project|product)s(|/.*)$ http://%{SERVER_NAME}/$1$2?${unescape:%{QUERY_STRING}} [R=301,L]
+       RewriteRule ^(mailman|pipermail|priv|phorum|akra|project/captive/dist)(|/.*)$ http://www2.jankratochvil.net/$1$2?${unescape:%{QUERY_STRING}} [R=302,L]
+       <IfModule !mod_perl.c>
+               RewriteRule ^favicon[.]ico$ /My/Status.pm?code=404 [P,L]
+               RewriteRule ^(.*)[.](html|txt)[.]pl(|/.*)$ /$1.pm$3?${unescape:%{QUERY_STRING}} [R=301,L]
+               RewriteRule ^resume/Resume-JanKratochvil.pm(|/.*)$ /resume/ResumeJanKratochvil.pm$1?${unescape:%{QUERY_STRING}} [R=301,L]
+               RewriteRule ^(.*?)/+Index[.]pm$ /$1/?${unescape:%{QUERY_STRING}} [R=301,L]
+               RewriteCond %{REQUEST_FILENAME}/Index.pm -f
+               # It may be "" for the root directory:
+               RewriteRule ^(|(.*?/)/*)$ http://localhost:7680/$2Index.pm [P,L]
+               RewriteRule ^(.*[.]pm(|/.*))$ http://localhost:7680/$1 [P,L]
+       </IfModule>
+</IfModule>