2016-12-08 4 views
1

Ich versuche, eine URL wie folgt umgeleitet werden:htaccess 301 umleiten ohne Durch Unterverzeichnisse url

http://domain.com/word/baseball/cat/ 

Zu einer URL wie folgt aus:

http://domain.com/otherpage/ 

Die .htaccess Linie ich benutze ist :

redirect 301 /word/baseball/cat/ http://domain.com/otherpage/ 

Aber die resultierende URL nach der Umleitung endet als:

http://domain.com/otherpage/baseball/cat/ 

Ich mag die volle URL auf die neue URL ohne Übergabe des 'Baseball/cat /' Verzeichnisse, umleiten, so dass wir hoffentlich mit der URL am Ende:

http://domain.com/otherpage/ 

Dies ist für eine Website mit ungefähr 500 URLs wie dieser, die zu völlig anderen URLs umgeleitet werden müssen.

Ich freue mich über jede Hilfe im Voraus!

+0

i beantwortet, ohne dass der Wordpress-Tag zu bemerken. Wenn Sie dies für Wordpress tun, verwenden Sie einfach ein Plugin (https://wordpress.org/plugins/simple-301-redirects/). – WEBjuju

+0

Vielen Dank für die Plugin-Empfehlung. Die anderen Plugins, die ich getestet habe, haben nie funktioniert, aber dieses hat es geschafft! – Kuhnzy

Antwort

0

Setzen Sie Ihre .htaccess Datei im obersten Verzeichnis, in Ihrem DOCUMENT_ROOT. Die Datei sollte zumindest diese Rewrite-Anweisungen enthalten:

DirectoryIndex index.php 
<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . index.php 
</IfModule> 

Jetzt alle nicht vorhandenen Datei- und Verzeichnis-URLs, die auf die Website kommen, um index.php zu gehen. Innerhalb index.php legen Sie einen Routing-Mechanismus. Ein sehr einfaches würde wie folgt aussehen:

index.php

$rurl = ''; 
switch ($_SERVER['REQUEST_URI']) { 
    case '/word/baseball/cat/': $rurl = '/otherpage1/'; break; 
    case '/word/baseball/dog/': $rurl = '/otherpage2/'; break; 
    case '/word/baseball/rat/': $rurl = '/otherpage3/'; break; 
} 
if (!empty($rurl)) { 
    header('HTTP/1.1 301 Moved Permanently'); 
    header('Location: '.$rurl); 
    exit(); 
} 
0

Wenn Sie tun dies mit PHP, eine alternative Art und Weise die folgende sein könnte, aber es kann nicht zu wirksam sein:

header('Location: http://newurl.com'); 

Händler:

RewriteEngine on 
RewriteRule "/page1" "http://example.com/page1" [R]