inside22
@inside22

Nginx — как URL domain.com/blog/ вынести в отдельную директорию?

Доброго дня коллеги.

Есть у меня один сайт, domain.com который находится в /home/domain.com/www
все прекрасно работает.

Сейчас же пришло время создать для этого сайта блог.
Я создал /home/domain.com.blog/www сейчас же пытаюсь настроить NGINX на работу с этой папкой.

Создал правило:

location /blog {
	
	root /home/domain.com.blog/www;
	index index.php;
	
	location ~ \.php$ {
		fastcgi_pass unix:/var/run/php5-fpm.sock;
		fastcgi_index index.php;
		include fastcgi_params;
	}
}


Wordpress начал грузится, но не грузились статические файлы, пришлось добавить отдельное правильно для статических файлов.

location /blog {
	
	root /home/domain.com.blog/www;
	index index.php;
	
	location ~ \.php$ {
		fastcgi_pass unix:/var/run/php5-fpm.sock;
		fastcgi_index index.php;
		include fastcgi_params;
	}
	
	location ~* \.(gif|jpg|jpeg|png|ico|bmp|wmv|3gp|avi|mpg|mpeg|mp4|flv|mp3|mid|js|css|woff|exe|eot|svg|ttf)$ {
		root /home/domain.com.blog/www;
		expires 14d;
		add_header Pragma public;
		add_header Cache-Control "public, must-revalidate, proxy-revalidate";
		access_log off;
	}
}


После этого статические файлы начали грузится, осталось последняя проблема которую я победить не смог, это линки.

https://domain.com/blog/2015/08/05/hello-world/

Буду очень признателен, если подскажите как мне заставить работать Wordpress линки.
Вот error.log

2015/08/13 15:10:59 [error] 1127#0: *53 "/home/domain.com.blog/www/blog/2015/08/05/hello-world/index.php" is not found (2: No such file or directory), client: 81.21.83.210, server: domain.com, request: "GET /blog/2015/08/05/hello-world/ HTTP/1.1", host: "domain.com"


Хочу обратить внимание что Wordpress установлен в директории: home/domain.com.blog/www/blog/
Единственное что меня смущает в error.log, так это то, откуда в конце URL берется index.php

server {
    listen 443;
    root /home/domain.com/www;
    index index.php; 
    server_name domain.com;
	
	location ~* \.(gif|jpg|jpeg|png|ico|bmp|wmv|3gp|avi|mpg|mpeg|mp4|flv|mp3|mid|js|css|woff|exe|eot|svg|ttf)$ {
		root /home/domain.com/www;
		expires 14d;
		add_header Pragma public;
		add_header Cache-Control "public, must-revalidate, proxy-revalidate";
		access_log off;
		log_not_found off;
	}
	
	
	location /admin {
		try_files $uri $uri/ /admin/index.php?/$request_uri;
        }

	location / {
		try_files $uri $uri/ /index.php?/$request_uri;
	}

	location ~ \.php$ {
		fastcgi_pass unix:/var/run/php5-fpm.sock;
		fastcgi_index index.php;
		include fastcgi_params;
	}
}


Буду очень признателен, если подскажите мне как завести Wordpress на NGINX в саб-директории.
  • Вопрос задан
  • 906 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Arik
Единственное что меня смущает в error.log, так это то, откуда в конце URL берется index.php

Отсюда
index index.php;
Попробуйте location /blog добавить try_files с правилами Wordpress. - кучу статей есть.
Просто нет правила, что если нет файла, то какой адрес след пробовать
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы