Project

General

Profile

« Previous | Next » 

Revision 12175

web/.phpPgAdmin/.htaccess: refactored to build the URL incrementally, extracting path components 1st->last, instead of handling each # of path components as a separate case (which was more rigid and created unnecessary duplication)

View differences:

.htaccess
3 3

  
4 4
SetEnvIf Request_URI ^ innermost_dir=phpPgAdmin
5 5

  
6
RewriteRule ^\[(.*)\]/([^/]*)/([^/]*)/([^/]*)/([^/]*)/(.+?)/?$ http://$1/colproperties.php?server=$2&database=$3&schema=$4&table=$5&column=$6 [discardpath,last,noescape,qsappend,redirect]
7
RewriteRule ^\[(.*)\]/([^/]*)/([^/]*)/([^/]*)/(.+?)/?$         http://$1/tblproperties.php?server=$2&database=$3&schema=$4&table=$5           [discardpath,last,noescape,qsappend,redirect]
8
RewriteRule ^\[(.*)\]/([^/]*)/([^/]*)/(.+?)/?$                 http://$1/tables.php?server=$2&database=$3&schema=$4                           [discardpath,last,noescape,qsappend,redirect]
9
RewriteRule ^\[(.*)\]/([^/]*)/(.+?)/?$                         http://$1/schemas.php?server=$2&database=$3                                    [discardpath,last,noescape,qsappend,redirect]
10
RewriteRule ^\[(.*)\]/(.+?)/?$                                 http://$1/all_db.php?server=$2                                                 [discardpath,last,noescape,qsappend,redirect]
11
RewriteRule ^\[(.*)\]/?$                                       http://$1/servers.php                                                          [discardpath,last,noescape,qsappend,redirect]
6
# remove trailing / (not used)
7
RewriteRule ^(.*)/$ $1 [discardpath,noescape,qsappend]
12 8

  
9
# extract base URL
10
RewriteRule ^\[(.*)\](?:/(.*))?$ $2 [discardpath,noescape,qsappend,env=base_url:http://$1]
11

  
12
# extract path components 1st->last
13
RewriteRule ^                   -              [discardpath,noescape,qsappend,env=page:servers]
14
RewriteRule ^([^/]+)(?:/(.*))?$ $2?server=$1   [discardpath,noescape,qsappend,env=page:all_db]
15
RewriteRule ^([^/]+)(?:/(.*))?$ $2?database=$1 [discardpath,noescape,qsappend,env=page:schemas]
16
RewriteRule ^([^/]+)(?:/(.*))?$ $2?schema=$1   [discardpath,noescape,qsappend,env=page:tables]
17
RewriteRule ^([^/]+)(?:/(.*))?$ $2?table=$1    [discardpath,noescape,qsappend,env=page:tblproperties]
18
RewriteRule ^([^/]+)(?:/(.*))?$ $2?column=$1   [discardpath,noescape,qsappend,env=page:colproperties]
19

  
20
# redirect to now-constructed URL
21
RewriteCond %{ENV:base_url} !=""
22
RewriteRule ^$ %{ENV:base_url}/%{ENV:page}.php [discardpath,last,noescape,qsappend,redirect]
23

  
24
## for internal URLs
25

  
13 26
# auto-add trailing / (dir without trailing / is absolute filesystem path)
14 27
RewriteCond %{ENV:innermost_dir} =phpPgAdmin
15 28
RewriteRule ^/ %{REQUEST_URI}/ [discardpath,last,noescape,qsappend,redirect]

Also available in: Unified diff