Mod_rewrite che combina URL SEO friendly e CDN

Jan 20 2020

Sono sicuro che ci deve essere un modo intelligente per aggirare questo problema, ma non riesco a capirlo. Sto usando mod_rewrite per creare nomi di file SEO friendly E passare al nostro CDN. Posso farli entrambi separatamente ma insieme si annullano a vicenda

Usiamo mod_rewrite (in htaccess) per creare nomi di file SEO friendly. Quindi per esempio: -

RewriteRule ^ thumbnails / ([0-9] +) / ([^ /] +). Jpg$ /thumbnails/$1 / image.jpg [NC, L]

mappe https://www.example.com/thumbnails/123/my-image-of-a-puppy.jpg su https://www.example.com/thumbnails/123/image.jpg

Funziona tutto bene. Ma usiamo anche mod_rewrite per estrarre le immagini dal CDN, quindi usiamo qualcosa del genere: -

RewriteRule ^ (. *). (Jpeg | jpg | png) $ https://cdn-w.example.com%{REQUEST_URI} [R = 301, NC, QSA, L]

Ora mod_rewrite esegue un reindirizzamento 301 esterno (o 302 se tralascio R = 301 bit).

Anche questo funziona bene, ma per quanto riguarda Google, https://www.example.com/thumbnails/123/my-image-of-a-puppy.jpg viene semplicemente reindirizzato a https://cdn-w.example.com/thumbnails/123/image.jpg che cancella il nome del file SEO friendly non è vero ??

Mi sto perdendo qualcosa ?

Risposte

Aidan Jan 20 2020 at 23:34

Se usi il modificatore [P] sul riferimento CDN, dovrebbe funzionare come desideri.

Utilizzare questo flag per ottenere un'implementazione più potente della direttiva ProxyPass, per mappare il contenuto remoto nello spazio dei nomi del server locale.

Quindi l'URL dovrebbe rimanere lo stesso in arrivo, con il contenuto della CDN.