Постоянные ссылки Wordpress на Google App Engine - 404 для некоторых страниц (сеть, все медиа) - PullRequest
0 голосов
/ 17 июня 2019

Я настраиваю WordPress на облачной платформе Google в многосайтовой конфигурации (сеть). Я использую wp-gae, и все работает отлично, за исключением довольно постоянных ссылок. Как правильно написать app.yaml?

Я использую wordpress поверх wp-gae (https://cloud.google.com/community/tutorials/run-wordpress-on-appengine-standard). В облаке красивые постоянные ссылки не работают, но на моем локальном компьютере отлично работает каждая маска постоянных ссылок. Я имею в виду, проблема в app.yaml или app-gae.php, но я не могу сделать это работающим.

#app.yaml
runtime: php72
instance_class: F2
entrypoint: serve gae-app.php

handlers:
- url: /(.*\.(htm|html|css|js))
  static_files: \1
  upload: .*\.(htm|html|css|js)$

- url: /wp-content/(.*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg))
  static_files: wp-content/\1
  upload: wp-content/.*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg)$

- url: /(.*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg))
  static_files: \1
  upload: .*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg)$

- url: /wp-includes/images/media/(.*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg))
  static_files: wp-includes/images/media/\1
  upload: wp-includes/images/media/.*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg)$

/**
 * gae-app.php
 * Function to return a PHP file to load based on the request URI.
 *
 * @param string $full_request_uri The request URI derivded from $_SERVER['REQUEST_URI'].
 */
function get_real_file_to_load($full_request_uri)
{
    $request_uri = @parse_url($full_request_uri)['path'];

    // Redirect /wp-admin to /wp-admin/ (adds a trailing slash)
    if ($request_uri === '/wp-admin') {
        header('Location: /wp-admin/');
        exit;
    }

    // Serve up "index.php" when /wp-admin/ is requested
    if ($request_uri === '/wp-admin/') {
        return '/wp-admin/index.php';
    }

    // Load the file requested if it exists
    if (is_file(__DIR__ . $request_uri)) {
        return $request_uri;
    }

    // Send everything else through index.php
    return '/index.php';
}

$_SERVER['HTTPS'] = $_SERVER['HTTP_X_APPENGINE_HTTPS'];

$file = get_real_file_to_load($_SERVER['REQUEST_URI']);

$_SERVER['DOCUMENT_URI']    = $_ENV['DOCUMENT_URI']    = $file;
$_SERVER['PHP_SELF']        = $_ENV['PHP_SELF']        = $file;
$_SERVER['SCRIPT_NAME']     = $_ENV['SCRIPT_NAME']     = $file;
$_SERVER['SCRIPT_FILENAME'] = $_ENV['SCRIPT_FILENAME'] = __DIR__ . $file;

require __DIR__ . $file;

Мне нужно включить симпатичные постоянные ссылки, такие как / post-title, но теперь работают только базовые постоянные ссылки. Когда я изменяю конфигурацию на что-то другое, некоторые страницы и URL-адреса выбрасывают 404 - например. сетевая панель, все медиа-файлы из медиа-библиотеки (просмотр). Но пост (вроде / hello-world) все еще работает.

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