2017-03-21 3 views
1

J'ai le fichier sitemap.xml dans le répertoire public du site. Quand j'utilise le sous-domaine 'm.', Il utilise le même répertoire public que le site général. J'ai besoin de renvoyer le fichier '/mobile-sitemap.xml' depuis l'URL '/sitemap.xml', quand je suis sur le sous-domaine 'm'.nginx substitude fichier sitemap.xml sur le sous-domaine

Quels modules et règles nginx pourraient m'aider à faire cela?

Ma première étape était comme ça:

if ($host ~* m\.(.*)) { #if url = /sitemap.xml, give back file /mobile-sitemap.xml as /sitemap.xml }

Ou peut-être est ok Google, si je vous suffit d'envoyer 301 rediriger vers un autre fichier sitemap?

Répondre

1

Vous pouvez créer un bloc de serveur distinct pour votre sous-domaine mobile, auquel cas l'instruction if ne serait pas nécessaire. Voir this caution sur l'utilisation de if.

Toutefois, pour mettre en œuvre ce dans un seul bloc de serveur, utilisez un location et un rewrite:

location = /sitemap.xml { 
    if ($host ~* m\.) { 
     rewrite^/mobile-sitemap.xml last; 
    } 
} 

Voir this et this pour plus.