Dans le fichier .htaccess, je voudrais rediriger (301):
De: http://www.example.com/photo<anything>
À: http://www.example.com/blog/
En principe, toute URL commençant par /photo
doit être redirigée vers l’URL unique /blog/
. Quelle est l'expression régulière pour cela?
J'ai découvert:
RedirectMatch 301 ^/photo/ http://www.example.com/blog/
Cela fonctionnera si votre serveur est Apache avec mod_rewrite activé:
RewriteEngine On
RewriteRule ^photo(.*)$ http://www.example.com/blog/ [R=301,L]
et si les caractères majuscules ou minuscules sont acceptables, utilisez ceci:
RewriteEngine On
RewriteRule ^photo(.*)$ http://www.example.com/blog/ [R=301,L,NC]
En raison de la redirection, je recommanderais d'utiliser l'URL absolue absolue vers laquelle rediriger au lieu d'une URL relative, car un document rfc (j'ai oublié le numéro rfc) a déjà indiqué que l'en-tête Location d'une page de redirection devait être une URL absolue absolue, mais puis un autre document rfc a indiqué plus tard que l'URL pouvait être relative, mais si vous voulez augmenter la compatibilité de chaque navigateur Web, je suggérerais d'utiliser des URL absolues pour toutes les redirections.
Vous n'avez même pas besoin d'une expression régulière. La directive Redirect
gère ce cas facilement:
redirect permanent /photo/ http://www.example.net/blog/
redirect permanent /photo http://www.example.net/blog
dans le fichier . htaccess du serveur example.com
. Par défaut, la directive de redirection enregistre tout élément supplémentaire sur le chemin (/photos/hello
) et l'ajoute à la destination (/blog/hello
).