2017-02-03 2 views
1

Ich habe eine .htaccess-Datei mit einigen Regeln, und ich möchte nun eine weitere Regel hinzuzufügen, die einen Teil der URL-Streifen, so dass.htaccess RewriteRule zu entfernen? folgende Hostnamen

www.mydomain.com/?generations/anything

wird

www.mydomain.com/anything

(und etwas mea ns andere Zeichen). Ich kann es schaffen, ohne das?, Aber ich kann scheinen nicht zu passen/entfernen? I versucht:

1 fehlgeschlagen:

RewriteRule ^\?generations/(.*)$ /$1 [L] 

2 fehlgeschlagen:

RewriteCond %{QUERY_STRING} ^generations/(.*)$ 
RewriteRule ^generations/(.*)$ $1 [L] 

3 fehlgeschlagen:

RewriteCond %{QUERY_STRING} ^generations/(.*)$ 
RewriteRule ^([^?]*)?generations/(.*)$ $2%1 [L] 

4 fehlgeschlagen:

RewriteRule ^([^?]*)?generations/(.*)$ $1$2 [QSA,L] 

Kann jemand eine Arbeitsregel erstellen - und erklären, warum mein dritter Versuch oben nicht funktioniert? Ich kann möglicherweise Probleme mit den ersten beiden sehen, aber die dritte und vierte sollte funktionieren ...

Antwort

1

Sie erhalten dort mit 3, aber die Abfragezeichenfolge ist nicht in einer RewriteRule-Übereinstimmung enthalten. Sie wollen also nur die leere Zeichenfolge entsprechen:

RewriteCond %{QUERY_STRING} ^generations/(.*)$ 
RewriteRule ^$ %1? [L] 

Aber Sie es auch haben falsch herum Ich denke, wenn Sie/etwas wollen, dass die URL zu sein, die im Browser besucht wird. Sie wollen eigentlich nur folgendes:

RewriteRule ^(.*)$ ?generations/$1 [L] 
+0

Können Sie Ihren ersten Codeblock erklären? Was macht^$? Und sind in Ihrem zweiten Block die Muster und Ersatzzeichenfolgen umgekehrt? – TSG

+0

Erster Codeblock,^$ sagt nur, dass die leere Zeichenfolge wie in nur mydomain.com/ übereinstimmt, da die Abfragezeichenfolge separat abgeglichen wird. In der zweiten ist der Punkt, wenn Sie wollen, dass die Leute mydomain.com/anything tatsächlich mydomain.com/?generations/anything besuchen, dann müssen Sie es umgekehrt tun. Also ja, umgekehrt wie du es gemacht hast. – SuperDuperApps

+0

Aber ich wollte die "generations /" aus der URL entfernen. Bedeutet das, dass deine Antwort umgekehrt ist? – TSG