2016-07-29 17 views
0

Ich möchte .htaccess verwenden url meiner webite neu zu schreiben:.htaccess mit Fragezeichen Umleitung

wenn url https://test.example.com/var1?m=var2 ist, korrekte Umleitung url sein: https://test.example.com/getid.php?first=var1&second=var2

eine Alternative sein könnte:

https://test.example.com/getid.php?total=var1?m=var2 

so, nachdem ich die Spaltung tun ..

+1

Was genau ist Ihre Frage? – Ares

Antwort

2

Wo du bist wahrscheinlich gestolpert ist, dass das Muster in RewriteRule nur den Pfad Teil entspricht, nicht die Query-String - Sie müssen RewriteCond verwenden für diese

RewriteCond %{QUERY_STRING} m=(.*) 
RewriteRule ^(.*)$ getid.php?first=$1&second=%1 [L] 

(die oben geht davon aus, dass m sind die einzigen Abfrage-String-Parameter und wird nicht übereinstimmen, wenn m nicht vorhanden ist)

+0

es funktioniert, danke. Und wie kann ich eine Regel hinzufügen, die auch dann funktioniert, wenn m nicht vorhanden ist? So etwas funktioniert jetzt nicht: https://test.example.com/var1 – Peppegiuseppe

+1

Fügen Sie ein Fragezeichen nach dem 'm = (. *)' Hinzu, um es optional zu machen: 'RewriteCond% {QUERY_STRING} (m = (. *))? '(Jetzt, da es zwei Regex-Capture-Gruppen gibt, müssen Sie auch% 1 zu% 2 ändern, da Sie die zweite, innere Gruppe haben wollen) – Levi

0

Sie benötigen einen .htaccess auf Sie Server webroot Pfad mit diesem in es in:

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ getid.php?total=$1 [L,QSA] 

Grundl. Sache, die Sie in das Thema sollte lauten: http://www.askapache.com/htaccess/modrewrite-tips-tricks.html

+0

mmm nein! das funktioniert nicht: https://test.example.com/var1?m=var2 umleiten zu https://test.example.com/getid.php?total=var1 – Peppegiuseppe