Я бился головой об стену в течение трех недель, пытаясь настроить постоянные ссылки в 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).
Что я пробовал:
Дни поиска в Google. У меня есть вопросы по основному сайту Wordpress, сайтам с плагинами, Reddit, и я продолжаю оставаться пустым.
Apache2 Rewrite: на разных сайтах, которые я читал в Интернете, я обнаружил, что Apache Rewrite может быть проблемой здесь, если он не включен. Я просмотрел и убедился, что это включено на обоих сайтах.
.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 перезапуск