Назад | Перейти на главную страницу

Постоянные ссылки в Wordpress не работают на Google Cloud Platform

Я бился головой об стену в течение трех недель, пытаясь настроить постоянные ссылки в Wordpress для работы на Google Cloud Platform. Вот краткое изложение того, что у меня есть, что я пытаюсь сделать и что уже пробовал.

У меня есть два сервера в GCP, у которых одинаковая проблема.

Сервер 1 (перенесенный сервер) На этом сервере есть четыре сайта Wordpress, которые я перенес с общего хостинг-провайдера. На всех четырех сайтах WordPress есть проблемы, если я не использую первую настройку в разделе «Постоянные ссылки» в разделе «Настройки для WordPress». ОС: Debian 8 Веб-сайт: www.example.com

Сервер 2 (развернутый Google) Этот сервер представляет собой единое развертывание Wordpress, которое было запущено с использованием предварительно созданного развертывания экземпляра Wordpress Google. ОС: Debian 8 Wordpress: 4.8

Проблема постоянных ссылок: В Wordpress -> Настройки -> Постоянные ссылки -> Если я выбрал «Обычный - http://example.com/?p=123«Я могу загрузить первую страницу сайта и перейти на любые дополнительные страницы. Если я выберу что-нибудь ДРУГОЕ, кроме «Обычный», будь то «День и имя», «Месяц и имя», «Числовой», «Название публикации» или «Пользовательская структура», то я смогу загрузить только первую страницу сайта. и я не могу загрузить другие страницы. Когда я пытаюсь загрузить любую из других страниц, я получаю следующую ошибку:

Не найден Запрошенный URL /loopstats/ не был найден на этом сервере. Сервер Apache / 2.4.10 (Debian) на порт 80 example.com

Теперь он настоящий кикер, Сервер 2 (GCP Deployed), который я использовал Диспетчер развертывания Google для запуска экземпляра Wordpress, настройкой по умолчанию для Постоянных ссылок является вариант «Пользовательский» со следующим заголовком:

/index.php/%year%/%monthnum%/%day%/%postname%/

Опять же, если я использую ЛЮБОЙ другой параметр, кроме этой настраиваемой ссылки, я могу загружать только первую страницу, и ВСЕ другие ссылки не работают.

Когда я возвращаюсь к серверу 1 (перенесенный сервер) и ввожу этот слаг в настраиваемое поле, тогда все работает на сервере 1. Это не работает для меня, хотя теперь у меня остались эти невероятно неприятные ссылки, которые содержат index.php. (Мне сказали, что это ужасно для целей SEO).

Что я пробовал:

  1. Дни поиска в Google. У меня есть вопросы по основному сайту Wordpress, сайтам с плагинами, Reddit, и я продолжаю оставаться пустым.

  2. Apache2 Rewrite: на разных сайтах, которые я читал в Интернете, я обнаружил, что Apache Rewrite может быть проблемой здесь, если он не включен. Я просмотрел и убедился, что это включено на обоих сайтах.

  3. .htaccess файл: Я уничтожил .htaccess на Сервере 1 и заменил его файлом .htaccess с Сервера 2 (Google Deployed). Это не дало никаких преимуществ для структуры постоянных ссылок, кроме того, что позволило мне теперь использовать Custom slug с Сервера 2. (/index.php/%year%/%monthnum%/%day%/%postname%/)

Это содержание моего текущего .htaccess файл на обоих серверах:

# BEGIN WordPress
<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
# END Wordpress

Кто-нибудь знает, что я делаю не так? Я хочу иметь возможность использовать более качественные постоянные ссылки и избавиться от этих очень неприятных ссылок.

используйте ssh: отредактируйте свой apache .conf

sudo nano /etc/apache2/apache2.conf

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride ALL <----(edit from none)
        Require all granted
</Directory>

... а затем перезапустите apache2, используя:

sudo service apache2 перезапуск