2017-10-12 1 views
1

Ich möchte http://mywebsite.com/folder/file.html zu http://mywebsite.com/file konvertieren. Ich benutze keinen regulären Ausdruck, da ich mich zuerst nur um diese eine URL kümmere.Externe und interne Umleitung mit htaccess

Ich versuchte this-

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

diese Verwendung Ich kann diese URL zum gewünschten extern umleiten, aber da die URL nicht so existiert Ich erhalte 404.

nun in um intern auf die neue URL des alten zu umleiten, ich bin mit folgendem Befehl, aber es scheint nicht

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

Antwort

1

nur mod_rewrite Richtlinien undArbeits- verwendenVariable für externe Umleitung.

# 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

Vielen Dank für die Antwort Anubhava, gerade jetzt, wenn ich die neue kürzere URL treffe, dann wird die Seite erfolgreich geladen. Aber beim Treffen der alten URL gibt es keine Umleitung zu der kürzeren URL, obwohl die Seite geladen wird. –

+0

URL - http://artoftesting.com/manualTesting/beta-testing.html .htaccess Eintrag für externe Umleitung - RewriteCond% {THE_REQUEST} \ s/+/manualTesting/Beta-Test \ .html [\ s?] [NC] RewriteRule ^/Beta-Test [R = 301, L, NE] –

+0

Sie hatten ein zusätzliches '/' in Ihrer Regel. Teste meine aktualisierten Regeln jetzt. – anubhava