Я использую следующий блок nginx для перенаправления mysite.com/blog в мой каталог / var / www / mysite / wordpress /:
location /blog {
root /var/www/mysite/wordpress;
rewrite ^/blog/(.+)$ /$1 break;
try_files $uri $uri/ /blog/index.php?q=$uri&$args;
index index.php;
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;
}
}
Все работает нормально, за исключением того, что mysite.com/blog/wp-admin/ выдает ошибку 404. Посещение mysite.com/blog/wp-admin/index.php работает должным образом, поэтому похоже, что мое правило индекса не работает. В чем может быть проблема?
Решить эту проблему можно с помощью alias
директива:
location ^~ /blog {
alias /var/www/mysite/wordpress;
index index.php;
try_files $uri $uri/ /blog/index.php?q=$uri&$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;
}
}