Quelques bouts de code .htaccess utiles

Principalement utiles pour WordPress (parfois pour des plugins), voici des bouts de code .htaccess dont j’ai souvent besoin dans le cadre du développement web.

Redirection selon la langue du navigateur

On commence tout de suite avec une redirection selon la langue du navigateur. Je l’utilise beaucoup avec WPML, de sorte que je coche l’option « Langues différentes dans les répertoires » et ce même pour la langue par défaut, histoire d’être certain qu’on ait le même format d’URL peu importe la langue du site.
J’ai mis quelques commentaires dans le code, merci d’y prêter attention !

<IfModule mod_rewrite.c>
# Here you can add as much language as you want
# You can see that I added DE / NL / FR
# The last line is for the default language redirect,
# if the first redirects don't match the Accept-Language (ie: cz_CZ)
# it will redirect to EN

# Redirect for German
RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^$ http://%{SERVER_NAME}/de/ [L,R=301]

# Redirect for Dutch
RewriteCond %{HTTP:Accept-Language} ^nl [NC]
RewriteRule ^$ http://%{SERVER_NAME}/nl/ [L,R=301]

# Redirect for French
RewriteCond %{HTTP:Accept-Language} ^fr [NC]
RewriteRule ^$ http://%{SERVER_NAME}/fr/ [L,R=301]

# Redirect to default language if 
RewriteCond %{QUERY_STRING} !^[a-z]{2} [NC]
RewriteRule ^$ http://%{SERVER_NAME}/en/ [L,R=301]
</IfModule>

 

Changer le header Access-Control-Allow-Origin

Si, comme moi, vous utilisez le Sage Theme de Roots.io pour vos développements WordPress, vous avez surement déjà été confronté au problème que vos requêtes AJAX ne fonctionnent pas lorsque vous êtes en mode « gulp watch ».

Il vous suffit alors d’autoriser le domaine et le port comme origine « allowed »

<IfModule mod_headers.c> 
 Header set Access-Control-Allow-Origin "http://localhost:3000/"
 Header set Access-Control-Allow-Origin "http://localhost:3000"
</IfModule>

NB : Attention, si vous avez lancé plusieurs « gulp watch » simultanément vous aurez un port différent pour chaque instance, pensez donc à le mettre à jour le cas échéant.
NB2 : Pour une question de sécurité, je conseille de supprimer ce code en production !

Leave a Reply