2017-10-12 4 views
1

Je souhaite convertir http://mywebsite.com/folder/file.html en http://mywebsite.com/file. Je n'utilise pas d'expression régulière car je ne suis concerné que par cette seule URL.Redirection externe et interne à l'aide de htaccess

J'ai essayé this-

Redirect 301 /folder/file.html http://mywebsite.com/file 

L'utilisation de ce que je suis capable de rediriger cette URL externe à celle souhaitée, mais depuis l'URL n'existe pas, je suis tellement reçois 404.

Maintenant, en afin de rediriger en interne la nouvelle URL à l'ancienne, je me sers ci-dessous commande, mais il ne semble pas TRAVAiL

RewriteRule http://mywebsite.com/file http://mywebsite.com/folder/file.html [L] 

Répondre

1

Utilisez uniquement mod_rewrite directives et l'utilisation THE_REQUEST variable pour la redirection externe.

# turn on rewrite engine 
RewriteEngine On 

# external redirect from actual URL to pretty one 
RewriteCond %{THE_REQUEST} \s/+/folder/file\.html[\s?] [NC] 
RewriteRule^/file [R=301,L,NE] 

# internal forward from pretty URL to actual one 
RewriteRule ^file/?$ /folder/file.html [L,NC] 
+0

Merci beaucoup pour la réponse Anubhava, maintenant si je tape la nouvelle URL plus courte, alors la page se charge avec succès. Mais en appuyant sur l'ancienne URL, il n'y a pas de redirection vers l'URL la plus courte bien que la page se charge correctement. –

+0

URL - http://artoftesting.com/manualTesting/beta-testing.html Entrée .htaccess pour la redirection externe- RewriteCond% {THE_REQUEST} \ s/+/manualTesting/beta-testing \ .html [\ s?] [NC] RewriteRule ^/beta-testing [R = 301, L, NE] –

+0

Vous avez ajouté un '/' dans votre règle. Essayez mes règles mises à jour maintenant. – anubhava