web-dev-qa-db-fra.com

Comment proxy local WP télécharge le dossier sur le site actif

Pile:

MAMP PRO sur OSX 10.11.5 (El Cap)

Scénario:

Je développe un site localement, et une version en direct du site est déjà en ligne. Plutôt que de télécharger les 4 Go du dossier - uploads , j'aimerais que mon site local charge simplement les images à partir de l'URL dynamique.

Concept:

Après de nombreuses recherches, j'ai trouvé de nombreuses variantes de fichiers .haccess que vous pouvez utiliser pour accomplir cela. Mes préférés utilisent les conditions suivantes:

  1. Vérifie que vous êtes d'abord sur le serveur de développement (HTTP_Host)
  2. Vérifie que l'URL demandée est dans wp-content/uploads (REQUEST_URI)
  3. Vérifie que l'URL demandée n'existe pas localement (fichier ou répertoire via REQUEST_FILENAME)
  4. Si ceux-ci réussissent, exécutez la règle de réécriture.

Code:

Voici mon extrait .htaccess:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /wp-content/uploads/
  RewriteCond %{HTTP_Host} ^LOCALSITE\.dev$ [NC]
  RewriteCond %{REQUEST_URI} ^/wp-content/uploads/
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ http://LIVESITE.com/wp-content/uploads/$1 [NC,P]
</IfModule>

POUR LA VIE DE MOI JE NE PEUX PAS QUE CELA FONCTIONNE BIEN

J'ai effectué autant de tests que je peux penser et j'ai vérifié que mod_rewrite estSURdans MAMP. J'ai lu plus de documentation htaccess dont je me soucie et je tourne en rond maintenant.

Test:

Un de mes tests me laisse confus. Voici ce que j'ai fait:

  1. Créez une page dans WordPress avec 2 images dans le contenu.
    • "Image A" n'existe que sur ma machine locale
    • "Image B" n'existe que sur le site LIVE, mais utilise mon nom d'hôte local dans l'URL.
  2. L'image A s'affiche, l'image B obtient une erreur 404 (comme prévu)
  3. Ajoutez l'extrait .htaccess après le contenu WordPress
  4. Rien ne change
  5. Mais si je commente toutes les déclarations RewriteCond, l’image A 404 est la seule qui soit réellement réécrite avec l’URL LIVE. Ça n'existe pas là-bas, alors oui, c'est 404. Mais l'URL de l'image B a pas été réécrite et 404 également.

Avertissement: Il est 4h du matin

Toute aide est appréciée, merci.

1
William

J'ai donc découvert la réponse après avoir lu ma question après l'avoir postée ...

Les règles htaccess doivent être respectées AVANT les règles WordPress

Voilà. C'était le problème tout ce temps.

Je vais au lit.

3
William