Я пытаюсь настроить псевдоним, чтобы при получении доступа /phpmyadmin/
nginx извлекал его, /home/phpmyadmin/
а не из обычного корня документа. Тем не менее, каждый раз, когда я открываю URL, он дает мне 404 на все элементы, которые не были получены через fastcgi. fastcgi, кажется, работает нормально, а остальное - нет. strace
говорит мне, что пытается извлечь все остальное из обычного корня документа, но я не могу понять, почему. Кто-нибудь может дать некоторое представление?
Вот соответствующая часть моего конфига:
location ~ ^/phpmyadmin/(.+\.php)$
{
include fcgi.conf;
fastcgi_index index.php;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME /home$fastcgi_script_name;
}
location /phpmyadmin
{
alias /home/phpmyadmin/;
}
/
в псевдониме и вlocation
директиве, запрашивающий/phpmyadminfile
будет реально получить вас/home/phpmyadminfile
. Что касается того, почему конфиг в вопросе не работает, он выглядит правильно для меня, так что я подозреваю, что есть еще однаlocation
не показанная директива, которая соответствует, когда не предназначена. В этом случае, посколькуalias
заканчиваетсяlocation
префиксом, документы nginx предлагают использоватьroot /home;
вместо этого .Ответы:
Выяснили способ. Я не уверен, что это ЛУЧШИЙ, но он, безусловно, работает прямо сейчас.
Вот что я сделал:
источник
Я не уверен, но вы пытались написать это так:
Кроме того, что такое URI, с которого вы пытаетесь получить к нему доступ?
Насколько я понимаю, вы должны использовать URI
и не только
Вы можете прочитать больше об этом здесь: http://wiki.nginx.org/HttpCoreModule
источник
Пытаться
источник
Причина, по которой это не работает, заключается в том, что сервер выбирает местоположение на основе регулярных выражений, а не местоположение на основе префиксов с псевдонимом.
Он выберет только один. Есть оператор, который вы можете использовать для получения префиксного местоположения, чтобы опередить регулярное, но тогда вы обнаружите, что php не будет работать. Решение будет похоже на ответ Кервина, где регулярное выражение PHP вложено в расположение с помощью директивы alias.
Я подозреваю, однако, что его настройка SCRIPT_FILENAME может не сработать, так как в URL и в псевдониме каталога используются разные прописные буквы.
источник