2017-02-19 5 views
3

ich mit .htaccess nicht sehr erfahren bin. Heute scheitere ich beim Schreiben einer .htaccess, um eine URL neu zu schreiben..htaccess Regeln Unterordner auf ein GET-Variable neu zu schreiben

Was ich will: Mein Projekt auf einer Sub-Domain gehostet wird z.B. sub.domain.com

sollte Meine .htaccess verwalten:

  1. sub.domain.com zu www.domain.com umleiten sollte (301 umleiten, das ist klar)
  2. Unterordner als GET Variable zum Beispiel gesetzt werden sollte sub.domain.com/test zu www.domain.com?var=test
  3. die Unterordner /admin sollte nicht

Vielen Dank im Voraus für Tipps weitergeleitet!

Antwort

2

Dies sollte es für Sie tun:

RewriteEngine on 
RewriteCond %{HTTP_HOST} =sub.example.com 
# Following condition added to support changed requirement, see comments 
RewriteCond %{QUERY_STRING} !(?:^|&)var= 
RewriteCond %{REQUEST_URI} !^/admin/ 
RewriteRule ^(.*)$ http://www.example.com/?var=$1 [R=301,L] 

Dies wird jede Abfrage-String löschen, die in der ursprünglichen Anforderung war. Wenn Sie irgendeine Frage Zeichenfolge behalten möchten, und fügen Sie nur ‚var = ...‘, um es, fügen Sie dann QSA auf die Fahnen am Ende der letzten Zeile, durch ein Komma getrennt.

+0

Dank @SuperDuperApps Am Ende funktioniert die Umleitung, aber es gibt eine Sache: Es scheint, dass die Anfrage mehrfach umleiten und die URL sieht aus wie sub.example.com/?var=&var=&var=&var=&var=&var = & var = & var = & var = & var = etwas –

+0

Gern geschehen Stefan. Bitte beachten Sie meine Antwort mit der Zecke in der linken oberen davon acceptng, so die Frage beantwortet zeigt und ich ein bisschen rep bekommen es :) Welcome Überlauf Stack :) – SuperDuperApps

+0

Es gibt eine Sache, wie oben erwähnt. RewriteEngine auf RewriteCond% {HTTP_HOST} = sub.domain.com RewriteCond% {REQUEST_URI}! ^/Admin/ RewriteRule^$ \/(. *) $? E = $ 1 [QSA, R = 301, L] führt zu etwas wie: /? E = & e = & e = & e = & e = & e = & e = & e = & e = & e = & e = & e = & e = & e = & e = & e = & e = & e = & e = val es scheint, dass die Seite mehrmals umleitet ... (Sorry für stört Sie mit ihm :)) –