Frage

Ich habe eine ähnliche Frage hier gepostet . Dies war jedoch mehr über Beratung immer was zu tun ist. Nun, da ich weiß, etwas zu tun, ich bin auf der Suche nach einer wenig Hilfe, wie man es tun!

Im Prinzip habe ich eine Website, die so ziemlich 100% dynamisch. Alle die Website-Links verwenden, erzeugt PHP und alle Seiten setzen sich aus PHP includes / Code. Ich versuche, die SEO der Website zu verbessern, indem die URLs zu verbessern (wie in der anderen Frage angegeben) und ich kämpfen, um ein wenig.

Ich bin mit mod_rewrite des schönen Urls der hässlichen Urls auf dem Server neu zu schreiben. Also, was ich brauche, ist jetzt die hässliche URLs umwandeln (die aus dem PHP-Code erzeugt werden, in den Seiten) zu dem schöneren Urls.

Hier sind die URLs ich Parse müssen (diese sind in der anderen Frage aswell):

/index.php?m=ModuleType
/index.php?m=ModuleType&categoryID=id
/index.php?m=ModuleType&categoryID=id&productID=id
/index.php?page=PageType
/index.php?page=PageType&detail=yes

Hier ist, was ich die oben genannte URLs will analysiert werden an:

/ModuleType
/ModuleType/CategoryName
/ModuleType/CategoryName/ProductName
/PageType
/PageType/Detail

Es ist ein Beispiel auf der anderen Frage gestellt von: Gumbo aber fühlte ich es ein bisschen chaotisch und unübersichtlich auf genau das war, was er tat.

Könnte jemand mir helfen, dieses Problem zu lösen?

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Ich glaube, ich sehe, was Sie nach ... Sie haben Umschreiben alle URL getan, aber alle Verbindungen zwischen Ihren Seiten werden mit der alten URL-Syntax.

Der einzige Weg, ich sehe, um kann dies eine Art von Regex Suche zu tun und auf den Links zu ersetzen, so dass sie die neue Syntax verwenden. Dies wird mehr ein wenig kompliziert, wenn alle die Verbindungen dynamisch generiert werden, aber hoffentlich wird es nicht allzu viel damit zu tun.

Ohne zu sehen, wie Sie Ihre Links im Moment erzeugt werden, ist es schwierig zu sagen, wie Sie den Code ändern. Ich stelle mir es so etwas wie dies obwohl funktioniert:

<?php echo "<a href='/index.php?m=$ModuleType&categoryID=$id'>"; ?>

So können Sie das ändern würde an:

<?php echo "<a href='$ModuleType/$id'>"; ?>

Sorry, wenn ich habe Fehler in der Syntax gemacht, direkt an der Spitze von meinem Kopf ...

Andere Tipps

Wenn ich Ihre Frage falsch verstanden, Sie analysieren nicht die „hässlich“ URLs, die PHP-Skript wird mit ihnen genannt wird, so dass Sie Ihre Parameter $_GET[] (m, categoryID, ProduktID) und Sie kombinieren sie Ihre nette URLs zu machen, die nicht zu hart sein sollte (nur ein bisschen Logik, um zu sehen, ob ein Parameter ist und die Saiten verketten).

Sie erhalten einen Front-Controller benötigen, die die URL auf die richtige Seite versenden.

  1. Apache wird die URL mit Regeln in .htaccess umschreiben, so geschrieben, dass alles wird auf index.php? Q = umgeleitet werden. Zum Beispiel Typisierung http://example.com/i/am/here führt in ein Aufruf an index.php? q = / i / am / hier
  2. Index.php wird den Weg von $ _GET [ „q“] analysieren und entscheiden, was zu tun ist. Zum Beispiel kann es eine Seite umfassen, oder in die Datenbank gehen, schauen Sie den Pfad auf, den entsprechenden Inhalt erhalten und ausdrucken

Wenn Sie ein funktionierendes Beispiel einer .htaccess wollen, die genau dies tun wird (? Umleitung zu index.php mit q = Pfad) zu sehen, wie Drupal tut es:

http://cvs.drupal.org/ viewvc.py/drupal/drupal/.htaccess?revision=1.104

schrieb Als Palantir dies geschehen ist mod_rewrite und .htaccess verwenden. Um die richtigen Rewrite-Bedingungen in der .htaccess erhalten Sie einen Blick auf ein Mod Rewrite Generator (zB http://www.generateit.net/mod-rewrite/ ). Macht es viel einfacher.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top