Как я могу обойтись используя псевдоним в nginx?
Из -за давней ошибки в nginx мне посоветовали сменить директиву псевдонима на корневую. К сожалению это теперь ломает мои статические файлы, которые расположены в другом каталоге с моим путем сайта (mysite.com/blog
-> /var/www/mysite/wordpress
). Как я могу обойти это, не меняя мою статическую файловую структуру? Вот мой полный блок местоположения:
location /blog {
root /var/www/mysite/wordpress;
try_files $uri $uri/ /blog/index.php$is_args$args;
location ~ \.php {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_split_path_info ^(?:\/blog\/)(.+\.php)(.*);
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
}
1 ответ
Решение
Перепишите URI:
location /blog {
root /var/www/mysite/wordpress;
rewrite ^/blog/([^.]+\.[^.]+)$ /$1 break;
try_files $uri $uri/ /blog/index.php$is_args$args;
location ~ \.php {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_split_path_info ^(?:\/blog\/)(.+\.php)(.*);
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
}
Это удалит /blog
часть URI для URI, содержащая потенциальный суффикс файла (something.something
).