J'essaie de déplacer une instance multisite basée sur Bedrock existante vers nginx et je ne parviens pas à obtenir un ensemble de règles nginx pour imiter le fichier .htaccess d'origine. Bedrock place le noeud des fichiers dans un sous-répertoire wp /, mais les URL doivent toujours être accessibles à partir du domaine racine.
Le .htaccess est ici comme suit:
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) wp/$1 [L]
RewriteRule ^(.*\.php)$ wp/$1 [L]
RewriteRule . index.php [L]
J'ai besoin de ces règles au moins sous forme de règles de configuration nginx ou de préférence de règles nginx vhost.
rewrite /wp-admin$ $scheme://$Host$uri/ last;
rewrite ^/(wp-.*.php)$ /wp/$1 last;
rewrite ^/(wp-(content|admin|includes).*) /wp/$1 last;
Ce sont les règles de réécriture équivalentes dont vous avez besoin. Notez que lorsque vous utilisez cette réécriture, vous ne devez plus définir le site_url comme/wp
Je dois terminer quelques tests, mais je mettrai à jour ici les résultats.
Ok, un type sage a supprimé mon dernier message.
La réponse, que le membre ci-dessus (@etc) m'a donnée sur un autre forum et fonctionne très bien, est la suivante:
# Rewrites for Bedrock Multi-Site Subdomain Setup
rewrite /wp-admin$ $scheme://$Host$uri/ last;
rewrite ^/(wp-.*.php)$ /wp/$1 last;
rewrite ^/(wp-(content|admin|includes).*) /wp/$1 last;
Il a révisé sa réponse mais ne l'a pas postée ici. Je voulais simplement le mettre à jour, car je rencontrais aussi ce fil de discussion.