Изменение формата постоянных ссылок вызывает различные проблемы - PullRequest
0 голосов
/ 11 февраля 2020

Я установил Wordpress, и постоянный формат по умолчанию - "/index.php/post-name". Я хочу изменить его на «/ post-name», поэтому URL будет «domain.com/blog/» вместо «domain.com/index.php/blog», но это вызывает некоторые странные проблемы. Я видел другие сообщения в Stackoverflow с той же проблемой, но не смог найти точного ответа.

Когда постоянная ссылка установлена ​​на "/index.php/post-name", кажется, что все работает нормально. Когда я изменяю его на "/ post-name", начинаю получать сообщение об ошибке

Ошибка публикации. Сообщение об ошибке: Ответ не является допустимым JSON ответом.

Интересно, что при просмотре инструментов разработчика, при попытке опубликовать sh страницу с помощью "/index.php/ post-name "запрос отправляется hxxps: //domain.com/index.php/wp-json/wp/v2/taxonomies/post_tag? context = edit & _locale = user , но когда я пытаюсь это сделать с «/ post-name» запрос отправляется на hxxps: //domain.com/wp-json/wp/v2/pages/ [[POST ID]]? _ locale = user , который возвращает 404.

Мой .htaccess выглядит следующим образом, после попытки последовать совету из других ответов:

Options +FollowSymlinks
RewriteEngine on

# BEGIN WordPress
# The directives (lines) between `BEGIN WordPress` and `END WordPress` are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Предварительно это было:

# BEGIN WordPress
# The directives (lines) between `BEGIN WordPress` and `END WordPress` are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

выполнение a2enmod retwrite возвращает статус «Перезапись модуля уже включена». Я установил плагин Classi c Editor, который, кажется, публикует sh, но затем пытается получить доступ к файлу, возвращает 404.

Моя среда - Ubuntu 16.04.4 LTS. Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 11 февраля 2020

Найдена проблема - пришлось изменить / etc / apache2 / sites-available / 000-default.conf с AllowOverride Нет на AllowOverride All .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...