?site=test => test/ per Redirect 301 in .htaccess
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aufruf
beobachten
code
dank
endlosschleife
folge
folgenden code
funktionieren
index
parameter
sinnvollen grund
tausche
test
treiben
trick
umleitung
url
verschwinden
vorhaben
wahnsinn
-
Hi,
ich möchte gerne, dass folgende URL ?site=test per .htaccess Datei in test/ umgewandelt wird.
Folgendes Konstrukt mag nicht ganz funktionieren:
RewriteCond %{QUERY_STRING} ^site=(.*)$ RewriteRule (.*) $1/ [L,R=301]
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo,
silecom schrieb:
ich muß zugeben, diesmal habe ich auch ein wenig gerätselt bei deiner Spezialaufgabe. Der Trick ist, dass die Regexp Gruppe der RewriteCond an die RewriteRule als "momale" Variable übergeben wird. Ein Beispiel ist hier als erster Fall API zu finden. Damit sollte also dies für dich funktionieren:
Folgendes Konstrukt mag nicht ganz funktionieren:
RewriteCond %{QUERY_STRING} ^site=(.*)$ RewriteRule (.*) $1/ [L,R=301]
RewriteCond %{QUERY_STRING} ^site=(.*)$ RewriteRule (.*) /%1/ [L,R=301]
Gruß -
Hi,
danke für den Beitrag. Ich habe noch eine weiter Frage.
Habe jetzt quasi den folgenden Code in der .htaccess stehen:
RewriteCond %{QUERY_STRING} !site=(.*)$ RewriteRule ^(.*)/$ index.php?site=$1 [L,QSA] RewriteCond %{REQUEST_URI} !/test/$ RewriteCond %{QUERY_STRING} ^site=test$ RewriteRule (.*) test/? [L,R=301]
Was ich damit bezwecken will ist, dass wenn direkt ?site=test aufgerufen wird, man auf test/ weitergeleitet wird. Ich will aber auch, dass man bei test/ auf ?site=test weitergeleitet wird (aber ohne Redirect).
Deshalb will ich vorher abfragen, ob sich test/ bereits in der URL befindet, was aber nicht so ganz klappt. Eine Endlosschleife ist die Folge. -
Hallo,
silecom schrieb:
Wenn A --> B und B --> A umgeleitet wird, dann ist es ja genau eine Endlosschleife. Da würde mich schon mal der Sinn interessieren. Tausche doch gleich die Seiten aus dann stimmt jeder Aufruf und du brauchst nichts umleiten. Also da bin ich mir sicher, dass es keinen sinnvollen Grund gibt das so zu machen, außer vielleicht irgenwelche Experimente oder um Kollegen aus dem Froum in den Wahnsinn zu treiben .
Was ich damit bezwecken will ist, dass wenn direkt ?site=test aufgerufen wird, man auf test/ weitergeleitet wird. Ich will aber auch, dass man bei test/ auf ?site=test weitergeleitet wird (aber ohne Redirect).
Eine Endlosschleife ist die Folge.
Wenn du es unbedingt so haben willst, dann kanst du ja bei der Umleitung einen Parameter mitgeben, der den redirect dann verhindert:RewriteCond %{QUERY_STRING} !redir=no RewriteCond %{QUERY_STRING} !site=(.*)$ RewriteRule ^(.*)/$ index.php?site=$1 [L,QSA] RewriteCond %{REQUEST_URI} !/test/$ RewriteCond %{QUERY_STRING} ^site=test$ RewriteRule (.*) test/?redir=no [L,R=301]
Gruß -
Meine Absicht ist es nicht, hier jemanden in den Wahnsinn zu treiben :D
Mir ist klar, dass sich aus dem von mir geschriebenen einfach eine Endlosschleife herauslesen lässt.
Allerdings gibt es hierfür einen Grund. Ich möchte, dass die von Suchmaschinen indizierten Links mit ?site= verschwinden. Deshalb auch der Redirect. Der zusätzliche Parameter kann somit nicht verwendet werden.
Löst man das vielleicht anders?
Beitrag zuletzt geändert: 24.3.2012 21:51:08 von silecom -
Hallo,
schön, dass du nun dein Vorhaben preisgibst.silecom schrieb:
Dazu kann ich nicht so viel sagen, aber das Thema ist praktisch unendlich komplex und die URL allein hilft sicher nur bedingt. Kannst ja mal nach seo optimierung oder seo friendly url oder so ähnlich googlen. Viele CMS bieten für diesen Zweck tools an (ich habe ja keine Ahnung was für einen Aufbau deine Site hat), aber im Prinzip ist es wohl eher so, dass die LInks auf den Seiten bereits SEO freundlich generiert werden. Es ist also nur eine Umleitung von test/ auf ?site=test erforderlich und nicht andersherum.
Löst man das vielleicht anders?
Gruß -
Gut, dann werd ich mal weiter beobachten ob die Seiten aus dem Index verschwinden. Danke für deine Hilfe :)
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage