Назад | Перейти на главную страницу

phpMyAdmin и Apache - строка запроса - ошибка 404

Когда phpMyAdmin пытается получить доступ к URL-адресу как https://example.com/phpmyadmin/server_variables.php&filter=long_query_time, Apache выдает ошибку 404.

В чем может быть проблема?

The requested URL /phpmyadmin/server_variables.php&filter=long_query_time was not found on this server.
 Apache/2.4.27 (Ubuntu) Server at example.com Port 443

Когда я изменился & к ?, все работало как шарм. Мой phpmyadmin.conf выглядит так:

Alias /phpmyadmin "/usr/share/phpmyadmin"
<Directory "/usr/share/phpmyadmin">
    DirectoryIndex index.php
    AllowOverride All
    Options FollowSymlinks
    Require all granted
</Directory>

.htaccess в /usr/share/phpmyadmin выглядит так:

AuthType Basic
AuthName "Restricted access!"
AuthUserFile /usr/share/phpmyadmin/.htpasswd
Require valid-user

Версия phpMyAdmin: 4.7.3

Это совершенно нормально, потому что URL-адрес содержит эти компоненты именно с этими разделителями:

scheme://host:port/path?query

Это означает, что следующие URL-адреса совершенно разные:

  • https://example.com/phpmyadmin/server_variables.php?filter=long_query_time

    Вот, phpmyadmin/server_variables.php является дорожка и filter=long_query_time запрос. Apache может найти server_variables.php и передайте переменные этого GET запрос метода к PHP.

  • https://example.com/phpmyadmin/server_variables.php&filter=long_query_time

    У этого есть только дорожка, phpmyadmin/server_variables.php&filter=long_query_time. Поскольку такого файла нет, Apache показывает ошибку 404, как и положено.

В & вместо этого используется как разделитель между переменными внутри запроса, например ?foo=123&bar=456.

Это была ошибка. Исправлено сегодня https://github.com/nijel

https://github.com/phpmyadmin/phpmyadmin/issues/13561