phpMyAdmin Shortcuts with .htaccess


Can I access directly to database or table pages?

Yes. Out of the box, you can use URL like http://server/phpMyAdmin/index.php?server=X&db=database&table=table&target=script. For server you use the server number which refers to the order of the server paragraph in Table and script parts are optional.

If you want http://server/phpMyAdmin/database[/table][/script] URL, you need to do some configuration. Following lines apply only for Apache web server. First make sure, that you have enabled some features within global configuration. You need Options FollowSymLinks and AllowOverride FileInfo enabled for directory where phpMyAdmin is installed and you need mod_rewrite to be enabled. Then you just need to create following .htaccess file in root folder of phpMyAdmin installation (don’t forget to change directory name inside of it):

RewriteEngine On
RewriteBase /path_to_phpMyAdmin
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&table=$2&target=$3 [R]
RewriteRule ^([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&target=$2 [R]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?db=$1&table=$2 [R]
RewriteRule ^([a-zA-Z0-9_]+)$ index.php?db=$1 [R]

My version

Instead of that, use this version. Just stick in the .htaccess file in the phpMyAdmin directory.

RewriteEngine On
RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [S=4]

RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-z_]+\.php)$ /index.php?db=$1&table=$2&target=$3 [R]
RewriteRule ^([a-zA-Z0-9_]+)/([a-z_]+\.php)$ /index.php?db=$1&target=$2 [R]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/?$ /index.php?db=$1&table=$2 [R]
RewriteRule ^([a-zA-Z0-9_]+)/?$ /index.php?db=$1 [R]

See Also

Htaccess phpMyAdmin RewriteRule