Project

General

Profile

« Previous | Next » 

Revision 8363

web/main/**/.htaccess: Support dotpaths in the query string instead of in the path, so that non-dotpath paths don't need to be suffixed with / to prevent their filenames from being interpreted as dotpaths. Putting dotpaths in the query string still requires only one character between the host and the path, but it's ? instead of / . ? is in many ways more natural, because the dotpath is a non-filesystem string to be parsed rather than something that's already a filesystem path. This change also avoids the need to strip trailing /s in many RewriteRules, because the dotpath mechanism is no longer appending them.

View differences:

.htaccess
1 1
RewriteEngine on
2 2
RewriteOptions inherit
3 3

  
4
RewriteRule ^\[(.*)\]/([^/]*)/([^/]*)/([^/]*)/([^/]*)/(.+)/$ http://$1/redirect.php?server=$2&database=$3&schema=$4&table=$5&column=$6&subject=column [discardpath,noescape,last,redirect]
5
RewriteRule ^\[(.*)\]/([^/]*)/([^/]*)/([^/]*)/(.+)/$         http://$1/redirect.php?server=$2&database=$3&schema=$4&table=$5&subject=table            [discardpath,noescape,last,redirect]
6
RewriteRule ^\[(.*)\]/([^/]*)/([^/]*)/(.+)/$                 http://$1/redirect.php?server=$2&database=$3&schema=$4&subject=schema                    [discardpath,noescape,last,redirect]
7
RewriteRule ^\[(.*)\]/([^/]*)/(.+)/$                         http://$1/redirect.php?server=$2&database=$3&subject=database                            [discardpath,noescape,last,redirect]
8
RewriteRule ^\[(.*)\]/(.+)/$                                 http://$1/redirect.php?server=$2&subject=server                                          [discardpath,noescape,last,redirect]
9
RewriteRule ^\[(.*)\]/$                                      http://$1/redirect.php?subject=root                                                      [discardpath,noescape,last,redirect]
4
# parse dotpath in the query string
5
RewriteCond %{QUERY_STRING} ^(?!&).+$
6
RewriteRule ^.*$ /dotpath.php%{REQUEST_URI} [discardpath,noescape,last]
7

  
8
RewriteRule ^\[(.*)\]/([^/]*)/([^/]*)/([^/]*)/([^/]*)/(.+?)/?$ http://$1/redirect.php?server=$2&database=$3&schema=$4&table=$5&column=$6&subject=column [discardpath,noescape,last,redirect]
9
RewriteRule ^\[(.*)\]/([^/]*)/([^/]*)/([^/]*)/(.+?)/?$         http://$1/redirect.php?server=$2&database=$3&schema=$4&table=$5&subject=table            [discardpath,noescape,last,redirect]
10
RewriteRule ^\[(.*)\]/([^/]*)/([^/]*)/(.+?)/?$                 http://$1/redirect.php?server=$2&database=$3&schema=$4&subject=schema                    [discardpath,noescape,last,redirect]
11
RewriteRule ^\[(.*)\]/([^/]*)/(.+?)/?$                         http://$1/redirect.php?server=$2&database=$3&subject=database                            [discardpath,noescape,last,redirect]
12
RewriteRule ^\[(.*)\]/(.+?)/?$                                 http://$1/redirect.php?server=$2&subject=server                                          [discardpath,noescape,last,redirect]
13
RewriteRule ^\[(.*)\]/?$                                       http://$1/redirect.php?subject=root                                                      [discardpath,noescape,last,redirect]

Also available in: Unified diff