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 в саб-директории.
  • Вопрос задан
  • 904 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Arik
Единственное что меня смущает в error.log, так это то, откуда в конце URL берется index.php

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

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

Войти через центр авторизации
Похожие вопросы