31640
Goto Top

Url manipulation

hallo!


also: ich würde bei meiner webseite eine ähnliche navigation haben wie bei der wikipedia d.h. der user gibt www.domain.de/foo/bar edin und bekommt dan die seite ww.doimain.de/index.php?cat=foo&id=bar

wenn ich mich nicht tausche war das mal bei administrator.de auch so admin.de/foo leitete zu einer suche nach foo weiter

kann mir jemad ein rat geben? danke im voraus....

Content-Key: 75550

Url: https://administrator.de/contentid/75550

Ausgedruckt am: 29.03.2024 um 11:03 Uhr

Mitglied: Dani
Dani 09.12.2007 um 00:04:35 Uhr
Goto Top
Hi Valerij,
diese Funktion ist abhängig vom Webserver. Sprich es hat nichts mit der Programmiersprache der Website zu tun, sondern ob der Apache-Webserver das rewrite Modul aktiviert hat. Mehr dazu findest du hier.


Grüße
Dani
Mitglied: EvilMoe
EvilMoe 09.12.2007 um 02:30:05 Uhr
Goto Top
Hier gibts auch noch gute Infos:
http://www.modrewrite.de/
Mitglied: 31640
31640 09.12.2007 um 13:20:25 Uhr
Goto Top
hmmm naja ich hab mit mod_rewrite schon exrementiert dennoch ist es nicht das wonach ish suche ich habe mit die wikimedia wiki runtergeladen und installiert die funktioniert auch so also wenn ich http://localhost/wiki/index.php/Main_Page aufrufe geht alles und in wiki verzeichnis ist auch keine .htaccess datei face-sad
Mitglied: Guenni
Guenni 09.12.2007 um 13:57:26 Uhr
Goto Top
@31640

Hi,

in der Konfiguratiosdatei(httpd.conf) des Apache gibt es einen
auskommentierten Eintrag "ErrorDocument 404 /missing.html".

Entferne das Kommentarzeichen "#" und ändere die Zeile in
ErrorDocument 404 /missing.php um. Dann erstellst du diese
Datei im Root-Verzeichnis des Webservers.

<?
/*
Zuerst wird die Serveradresse zusammengesetzt.
*/
$host="http://";  
$host.=$_SERVER["HTTP_HOST"];  
/*
Dann werden die Argumente, dein Beispiel /foo/bar, in einem 
Array abgelegt
*/
$uri_array=split("/",$_SERVER["REQUEST_URI"]);  
/*
Da du ja eine Suchfunktion angesprochen hast, heißt die Variable,
die an die Serveradresse angehangen wird jetzt einfach mal $search,
wo erstmal die Startseite abgelegt wird
*/
$search="/index.php?";  
/*
Anschließend werden alle Elemente bis auf das letzte an die Variable
$search angehangen.
*/
for($i=1;$i<count($uri_array)-1;$i++){
 $search.="arg".$i."=";  
 $search.=$uri_array[$i]."&";  
}
/*
Das letzte Element wird extra angehangen, weil in der for-Schleife
sonst am Ende ein "&" zuviel wäre, z.B. /index.php?arg1=foo&arg2=bar& 
*/
$search.="arg".$i."=";  
$search.=$uri_array[$i];
/*
Zum Schluß wird auf die Startseite(oder auf eine andere) umgeleitet, mit dem Querystring $search.
In der Adresszeile steht nun z.B. nach Aufruf "http://server/otto/schily/angela/merkel 
http://server/index.php?arg1=otto&arg2=schily&arg3=angela&arg4=merkel
*/
header("location:$host$search");  
?>


Auf der Zielseite mußt du dann die Argumente aus der URL ausfiltern.

<?
$query=substr($_SERVER['REQUEST_URI'],strpos($_SERVER['REQUEST_URI'],"?")+1);  
$query=split("&",$query);  
while(list($key,$value)=each($query)){
 $search=split("=",$value);  
 echo $search[1]."<br>";  
}
?>

Gruß
Günni

P.S.: Funktioniert jetzt mal bei mir zuhause. Inwie weit bestimmte Variablen vom
Webserver übertragen und ausgewertet werden können, hängt immer von der
Konfiguration ab. Auch das Ändern der httpd.conf muß natürlich erlaubt sein(Provider)
Mitglied: EvilMoe
EvilMoe 09.12.2007 um 14:02:03 Uhr
Goto Top
Danke Günni, diese Methode kannte ich noch ganricht auf diese Idee muss man erstmal kommen.

Aber ich glaube so wird das nicht beim WIKI gemacht wenn es nicht mod_rewrite ist. Denn es läuft bei Ihm lokal, aber hat nichts an der konfiguration geändert oder er hat nichts erwähnt. Oder vielleciht wird es ja per ini_set gemacht was aber auch wieder zugriffsrechte brauch?
Mitglied: 31640
31640 09.12.2007 um 17:56:30 Uhr
Goto Top
@günni
jo also danke 4 den vorschlag so hab ich das auch schon veruscht ist aber nicht ganz so wie bei wiki

@evilmode
nein ich hab nur den tar.gz in mein ordner wiki entpackt im browser aufgerufen, da kamm n setup script name festgelegt mysql einstallungen dann hat der script eine config.php abgelegt die musste ich von wiki/config nach wiki/ kopieren und das wars

@alle
also mit mod_rewrite hab ich das schon halbwegshingekrigt aber mit umlauten kommts nicht klar wiki aber schon so kamm ich auf die idde mir das wikimäsig zu machen
von einem kumpel weiß ich jetzt wie der aufruf funkt. er hat nähml mal einen datei programiert die so aufgerufen wurde some.php/foobar den source hat er aber leider nicht mehr... face-sad