kostenloser Webspace werbefrei: lima-city


?site=test => test/ per Redirect 301 in .htaccess

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    silecom

    silecom hat kostenlosen Webspace.

    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]
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo,

    silecom schrieb:
    Folgendes Konstrukt mag nicht ganz funktionieren:
    RewriteCond %{QUERY_STRING} ^site=(.*)$
    RewriteRule (.*) $1/ [L,R=301]
    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:
    RewriteCond %{QUERY_STRING} ^site=(.*)$
    RewriteRule (.*) /%1/ [L,R=301]

    Gruß
  4. Autor dieses Themas

    silecom

    silecom hat kostenlosen Webspace.

    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.
  5. Hallo,

    silecom schrieb:
    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 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 :biggrin:.
    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ß
  6. Autor dieses Themas

    silecom

    silecom hat kostenlosen Webspace.

    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
  7. Hallo,

    schön, dass du nun dein Vorhaben preisgibst.
    silecom schrieb:
    Löst man das vielleicht anders?
    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.

    Gruß
  8. Autor dieses Themas

    silecom

    silecom hat kostenlosen Webspace.

    Gut, dann werd ich mal weiter beobachten ob die Seiten aus dem Index verschwinden. Danke für deine Hilfe :)
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!