| (Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI... |
Diskussion: Dynamische PHP Seite Umleiten (Mod_Rewrite) im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Hallöle ;) ich bin auch mal wieder hier Aktiv ;) und habe direkt eine Frage, zu dem Bereich php + ...
![]() |
| | #1 (permalink) |
| Registriert seit: 22.11.07 ![]() Likes: 0 | Hallöle ;) ich bin auch mal wieder hier Aktiv ;) und habe direkt eine Frage, zu dem Bereich php + Mod_Rewrite. Undzwar geht es um folgendes Problem: Ich habe eine Webseite, die so unschöne lange Urls hat zb: index.php?site=gallery&groupID=1234 Über die Rewrite Funktion habe Ich sie in: galerie,gruppe,1234.htm "umgenannt, generiert (wie man das halt nennt)". Code: RewriteRule galerie,gruppe,(.*)\.htm$ index2.php?site=gallery&groupID=$1 [L] Code: Redirect 301 /verzeichnis/beispiel.html http://www.domain.com/beispiel.html Und das dann dementsprechend per Permanent, so das die Sumas dies Aktualisieren & den alten Link löschen, gibt es da eine Möglichkeit?, soetwas per htacess zu erreichen, da die Links Dynamisch sind (vermute ich, da die IDs generiert wird,) zb auch index2.php?site=forum&board=ID Ich schreib die Urls halt immer in das Format, Name,ID,seitenID Habe zuerst in anderen Foren gefragt, aber dort konnte mir niemand helfen :/, darum Wende ich mich mal voller Hoffnung an euch ;) Besste Grüße, Fabian "Edit Grund: Satzzeichen etc hinzugefügt!" |
| | |
| | #2 (permalink) |
| Hallo, anscheinend kann das Apache-Modul mod_alias (enthält u.a. die Redirect* Direktiven) nichts mit dem Query String anfangen. Glücklicherweise kann mod_reqrite ebenfalls Redirects auslösen. Das Ganze kannst du etwa so angehen: 1. Führe mit einer "RewriteCond"-Direktive einen Match auf den Query String durch, um deinen dynamischen Parameter auszulesen. 2. Führe dann eine "RewriteRule" für das falsche Format aus, wobei du einen Redirekt auf das richtige Format auslöst ([R=301]), und dies als letzte Regel deklarierst ([L]). 3. Führe _danach_ deinen normalen Redirekt vom richtigen Format auf die dynamische (php?)-Datei aus, und kennzeichne dies ebenfalls als letzte Regel. Jetzt sollte ein Aufruf des falschen Formats zu einem Redirect auf das korrekte Format führen, der als Aufruf der dynamischen Datei interpretiert wird. Achte aber darauf, dass das redirect-Ziel eine vollständige URL (inkl. http://) ist, da es sonst einen Internal Server Error geben kann. Einziger (kleiner) Nachteil: Der Originale Query-String vom falschen Format wird an den Aufruf des richtigen Formats angehängt. Das macht aber mod_rewrite immer so. Beispiel: .htaccess Code: RewriteEngine On
RewriteCond %{QUERY_STRING} ^myquery=(.*)$
RewriteRule ^index\.php$ http://www.planet-metax.de/diegeekdie/redirectTest/%1.htm [R=301,L]
RewriteRule (.*).htm index.php?myquery=$1 [L,QSA] Wenn ich jetzt aber index.php?myquery=irgendwas direkt aufrufe, werde ich mit einem Statuscode 301 (permanent) auf die URL http://www.planet-metax.de/diegeekdi...uery=irgendwas umgeleitet, so dass kein Duplicate Content entsteht. mfg, metax.
__________________ Wenn keiner zuschaut, teile ich heimlich durch Null! Meine Homepage: Planet Metax | meine Bilder: DeviantArt | Twitter | |
| | |
| HaBOT | |
| |
| | #3 (permalink) |
| Themenstarter Registriert seit: 22.11.07 ![]() Likes: 0 | Hallo, Werde daraus grade leider nicht so schlau :/, wenn ich es Teste erhalte ich Weiterleitungen in dem Format: www.example.com/ueber-uns.htm?site=about Was ja nicht sinn und Zweck ist :/ Code:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.example\.de$
RewriteRule index\.htm$ index.php [L]
RewriteCond %{QUERY_STRING} ^?site=about$
RewriteRule ^index\.php$ http://www.example.de/ueber-uns.htm [R=301,L]
RewriteRule ueber-uns\.htm$ index.php?site=about [L]
RewriteRule ueber-uns$ index.php?site=about [L] So viele EDIT's (Bald hab ichs |
| | |
| | #4 (permalink) |
| Registriert seit: 13.12.10 ![]() Likes: 0 | Hallo sonywalker, hast Du das Problem lösen können? Ich habe ein ganz ähnliches Problem mit der htaccess. Ausgangsproblem war es auch, eine dynamische php-Seitenstruktur auf statische Seiten per mod-rewrite umzuleiten. Vorher: www.domain.de/website.php&id=bla Aktuell: www.domain.de/bla Das hat auch wunderbar geklappt RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+)$ /domain/website.php\?id=$1 [QSA,NC] RewriteEngine On RewriteBase / RewriteCond %{QUERY_STRING} "" RewriteRule ^$ /domain/website.php [QSA,NC] Problem ist jetzt allerdings (genau wie bei Deiner Ausgangsfrage), dass ich keine 301 Umleitungen der alten URL-Struktur auf die neue hinbekomme. Noch schlimmer, über die alten URLs werden die Dateien gar nicht mehr aufgerufen :-( redirect permanent funktioniert nicht. Redirect http://www.domain.de/website.php&id=bla http://www.domain.de/bla Wer kann helfen? Viele Grüße, Hönislav |
| | |
![]() |
| | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [solved] mod_rewrite-problem | Felixh | (Web-) Design und webbasierte Sprachen | 3 | 24.05.09 16:16 |
| Apache2 : nph-CGI Scripts und mod_rewrite... | keksinat0r | Linux/UNIX | 0 | 07.03.08 18:55 |
| Apache - mod_rewrite... | keksinat0r | (Web-) Design und webbasierte Sprachen | 5 | 20.03.07 14:53 |
| mod_rewrite problem | Sunrize | (Web-) Design und webbasierte Sprachen | 2 | 02.01.06 12:26 |
| mod_rewrite | web-freak | (Web-) Design und webbasierte Sprachen | 0 | 24.11.05 12:13 |