2016-04-08 12 views
1

Die Website wurde zunächst auf einem Windows-Server gehostet und es wurde mit .asp Programmiersprache erstellt. Jetzt wurde es auf einen Linux-Server verschoben, der cPanel/WHM ausführt, und die neue Site wird mit Wordpress und WooCoomerce erstellt (die Site ist ein Online-Shop).Redirect alte .asp Links zu neuer url

Ich brauche .htacess zu tun Umleitungen von alten .asp Urls zu den neuen Verbindungen

Beispiel:

old URL: http://website.com.au/products.asp?cat=110 
new URL: http://www.website.com.au/product-category/pearls/ 

Was ich habe versucht ist:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

Redirect 301 /products.asp?cat=110 http://www.website.com.au/product-category/pearls/ 

Aus irgendeinem Grund Die Umleitung funktioniert nicht und ich bekomme einen Fehler 404 Seite nicht gefunden.

Jede Hilfe wäre willkommen!

+0

Abfragezeichen ein Problem sein könnte ... Siehe dazu: [301 umleitet: match Abfragezeichenfolgeflag, nicht hängen Sie ihn nicht auf neue Umleitung] (http://stackoverflow.com/questions/16162586/301-redirects-match-querystring -dont-append-it-to-new-redirect) – jpfromit

Antwort

1

Sie können nicht gegen Query-Strings in einer Redirect-Richtlinie entsprechen, müssen Sie gegen Query-Strings entsprechen einem RewriteCond verwenden, versuchen Sie:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{QUERY_STRING} ^cat=110$ 
RewriteRule ^products\.asp$ http://website.com.au/product-category/pearls/? [L,NC,R] 

Eine leere Fragezeichen am Ende der Ziel-URL ist wichtig, wenn Sie möchten nicht, dass die alten Abfragezeichenfolgen an die Ziel-URL angehängt werden.

+0

Es funktioniert !!! Ich danke dir sehr! Eine Sache noch. Ich werde genau das gleiche für andere Regeln tun wie? Das bedeutet, dass /products.asp?cat=102 zu gehen sollte http://website.com.au/product-category/diamonds/ lassen Sie uns sagen ... und so weiter ... –

+0

Ja, Sie können mehrere Rewriteconds hinzufügen und die gleichen Regeln wie oben für andere Abfrage-Strings, ändern Sie einfach die ** R ** zu ** R = 301 **, wenn Sie die Umleitung permanet machen wollen. – starkeen

+0

Ok, danke. Noch eine letzte Frage und ich bin fertig. Wenn ich mit all diesen Weiterleitungen fertig bin, welche Regel sollte ich hinzufügen, um andere ASP-Links auf die Hauptseite umzuleiten? Also sagen wir, dass ich 10 Regeln wie die aus dem Beispiel hinzufüge. Anschließend werden alle anderen Anforderungen an einen ASP-Link mit Ausnahme der ursprünglichen 10 auf die Hauptseite umgeleitet. Danke, –