Wordpress. Проблема с ссылками на посты. permalinks

J
На сайте с 06.07.2011
Offline
169
925

Сервер nginx + php без апача. Поменял ссылки(permalinks) с /2016/09/19/sample-post/ на /sample-post/ и страницы перестали работать.

Погуглил, нашёл, что нужно добавить в конфиг nginx.conf

location / {

try_files $uri $uri/ /index.php?$args;

}

Выводит ошибку: nginx: [emerg] duplicate location "/" in /home/admin/conf/web/nginx.conf:14

Если просто добавить в первый location строчку try_files $uri $uri/ /index.php?$args; - то всё работает, но ссылки открываются в новом окне.

Подскажите пожалуйста, что нужно вставить в nginx.conf ?

LM
На сайте с 18.10.2009
Offline
117
#1
jano:

Выводит ошибку: nginx: [emerg] duplicate location "/" in /home/admin/conf/web/nginx.conf:14

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

Какие-то плагины кэширования установлены?

J
На сайте с 06.07.2011
Offline
169
#2
LinuxMan:
Потому что дублируется и такой конфиг, как вы написали, уже есть.

Какие-то плагины кэширования установлены?

плагинов кэширования нет

LM
На сайте с 18.10.2009
Offline
117
#3

Если ссылки открываются в новом окне, значит, дело в каком-то плагине, типа wp noexternal links, или каком-то ещё, который добавляет target blank к ссылкам.

Если, конечно, этот атрибут напрямую не прописан в базе.

J
На сайте с 06.07.2011
Offline
169
#4
LinuxMan:
Если ссылки открываются в новом окне, значит, дело в каком-то плагине, типа wp noexternal links, или каком-то ещё, который добавляет target blank к ссылкам.

Если, конечно, этот атрибут напрямую не прописан в базе.

Ничего не прописано. Дело в том, что если добавить в nginx.conf, как советуют:


location / {
root /var/www/site.ru;
index index.php index.htm index.html;
if (!-e $request_filename ) {
rewrite ^(.*)$ /index.php?q=$1;
}
}

то всё работает, но ссылки открываются в новом окне.

Если убрать этот код, то ссылки открываются в этом же окне, но только не рабочие - 404

Очень странно - всё само по себе сейчас стало работать, ничего не трогал. :-/

LM
На сайте с 18.10.2009
Offline
117
#5
jano:
Очень странно - всё само по себе сейчас стало работать, ничего не трогал. :-/

Может быть, закэшировалось в памяти php. Opcode или подобное...

Вообще, ваш конфиг можно улучшить.

root /var/www/site.ru;
index index.php index.htm index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}

Из кодекса: https://codex.wordpress.org/Nginx#General_WordPress_rules

J
На сайте с 06.07.2011
Offline
169
#6
LinuxMan:
Может быть, закэшировалось в памяти php. Opcode или подобное...

Вообще, ваш конфиг можно улучшить.

root /var/www/site.ru;
index index.php index.htm index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}


Из кодекса: https://codex.wordpress.org/Nginx#General_WordPress_rules

А как сбросить кэш?. В permalinks добавляю к примеру "view-" /view-%postname%/

Соответственно без добавки view- видно пост, а так нет /watch-%postname%/

Сейчас вот опять - даже первоначальный вариант ссылок - не открывает - 404

---------- Post added 19-09-2016 at 19:35 ----------

Всё было достаточно просто. У меня панелька Vesta - там нужно было выбрать в шаблонах сайта wordpress и всё встало на круги своя. Всем спасибо за ответы - вопрос решился.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий