alias issue again
Gena Makhomed
gmm на csdoc.com
Чт Дек 1 16:29:19 UTC 2011
On 01.12.2011 15:57, yokodzun wrote:
> при запросе /pma/
>
> - - 01/Dec/2011:20:45:50 +0700 "GET /pma/index.php" 404
> - - 01/Dec/2011:20:46:26 +0700 "GET /pma/index.php" 404
>
> при запросе полного пути
>
> - - 01/Dec/2011:20:49:39 +0700 "GET /phpMyAdmin/index.php" 200
> - - 01/Dec/2011:20:49:40 +0700 "GET /phpMyAdmin/phpmyadmin.css.php"
> 200
> - - 01/Dec/2011:20:49:41 +0700 "GET /phpMyAdmin/js/messages.php" 200
> Судя по всем, таки не правильно
> срабатывает alias
alias скорее всего срабатывает правильно. похоже что это
я раньше не правильно понимал, как эта директива работает.
получается, что alias меняет location только для запросов к статике.
а поскольку index.php - не статика, то он обрабатывается во вложенном
location ~ \.php$ он as-is, без модификации, так что без директивы
"rewrite ^/pma/(.+)$ /phpMyAdmin/$1 break;" из модуля mod_rewrite
внутри location ~ \.php$ похоже что никак не обойтись:
server {
...
location / { ... }
location /pma/ {
alias /usr/local/www/phpMyAdmin/;
index index.php;
location ~ \.php$ {
rewrite ^/pma/(.+)$ /phpMyAdmin/$1 break;
...
}
}
}
похоже что в таком варианте - все должно работать нормально,
и возможно - это будет самый оптимальный вариант настройки.
потому что вся работа с /pma/ будет теперь инкапсусирована
внутри одного location`а и этот location /pma/ { ... }
можно будет менять/настраивать независимо от всех
остальных location`ов, которые могут быть в этом server`е.
--
Best regards,
Gena
Подробная информация о списке рассылки nginx-ru