Когда 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