Mod_rewrite
lima-city → Forum → Die eigene Homepage → Homepage Allgemein
apache
array
aufruf
ausgabe
datei
domain
endung
ersetzen
fragezeichen
funktionieren
http
index
jemand
kleinanzeige
modul
regel
start
suche
zeile
zweck
-
Hey,
ich würd gerne meine Seite mit einer verbesserten suchmaschinentauglichkeit ausstatten und dazu natürlich die urls ein bisschen verschönern ;)
das ich dazu mod_rewrite verwenden muss und so weiter weiß ich auch.
Zu diesem zweck hab ich mich ein bisschen auf die suche begeben und einige mehr oder weniger ausführliche tutorials gefunden. Leider weiß ich nicht woran es liegt, aber selbst wenn ich das ganze kopiere funktioniert nichts und ich bekomme einen http|500 :(
Vielleicht kennt ja jemand von euch ein ausführliches und leicht verständliches tutorial zu diesem sachverhalt.
was ich in erster line gern machen würde, ist:
aus 'domain.de/index.php' soll 'domain.de/Index' werden (der erste buchstabe muss nicht unbeding groß sein, wär aber nett^^)
und was später gut wäre ist:
'domain.de/index.php?a=start' --> 'domain.de/Start'
bzw
'domain.de/index.php?a=start&b=3' --> 'domain.de/Start:3'
Wenn jemand ahnung davon hat, wäre ich sehr dankbar für eine antwort
grüße
Oru -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
lokal ist alles installiert und so... soweit hab ich das tut noch verstanden xD
.htaccess
______________________________________________________________________
RewriteEngine On
Options +FollowSymlinks
RewriteBase /
# Fuer die Kleinanzeigen
RewriteRule ^kurzerdateiname,(.*),(.*),(.*)(\.html?)$ umstaendlicher_datei_name_und_lang\.php?ka_id=$1&mail=$2&top=$3 [L]
# Rule Fuer die Module
RewriteRule ^(.*)(\.html?)$ modules.php?name=$1
______________________________________________________________________
Ich hab den code jetzt aus einem relativ kurzen tut genommen und wollte erstmal gucken, wie das funktioniert.
da steht, dass wenn die erste regel nicht greift, die zweite genutzt wird. dem entsprechend hab ich mir eine modules.php geschrieben, die nur $_GET ausgibt und dann entsprechend 'localhost/mr/blub.html' eingetippt.
den 500er bekomm ich nicht mehr, dafür einfach einen 404er sprich, der nutzt die regel nicht und sucht normal nach der datei...
danke schonmal für die schnelle antwort :) -
1. Suche die Datei httpd.conf (bei Windows zB unter .../apache/conf/)
2. Öffne die Datei mit einem Texteditor deiner Wahl
3. Suche die Zeile #LoadModule rewrite_module modules/mod_rewrite.so
4. Enterfne das #
5. Speichern
6. Apache neustarten
7. Sollte nun funktionieren -
Ich glaub, wir haben uns falsch verstanden^^
das module ist installiert und apache wurde neugestartet.
nur die RewriteRules machen nicht das, was sie sollen :( -
Das könnte daran liegen, dass du einen realen Punkt '.' maskieren musst: '\.'.
Zudem würde ich empfehlen statt (.*) im ersten fall [^,]* und im zweiten Fall [^.]* zu schreiben.
Was das Fragezeichen am Ende innerhalb der Klammer soll ist mir ebenfalls nicht klar. Wenn schon (\.html)? -
Hmm...
Ich hab jetzt die ganze geschichte geändert... sieht so aus:
______________________________________________________________________
RewriteEngine On
Options +FollowSymlinks
RewriteBase /
# Fuer die Kleinanzeigen
RewriteRule ^kurzerdateiname,[^,],[^.],(.*)(.html)?$ umstaendlicher_datei_name_und_lang.php?ka_id=$1&mail=$2&top=$3 [L]
# Rule Fuer die Module
RewriteRule ^(.*)(.html)?$ modules.php?name=$1
______________________________________________________________________
brinzipiell ändert das allerdings nichts... ich bekomme nach wie vor den http|404 und sehe meine seite nicht :(
Ich will jetzt hier nicht unbeding rumbetteln, aber es wär echt cool, wenn mir jemand eine lösung für die 2. rule posten könnte. Also, wenn ich 'http://domain.de/blub.html' eingebe, bekomme ich von 'http://domain.de/mudules.php' die ($_GET)Ausgabe: 'Array ( [name] => blub ) '
Oru -
So, war das ncht gemeint...
ich meinte in der ersten Rule alle (.*) durch [^,]* ersetzen und in der zweiten Regel das (.*) durch [^.]* ersetzen. hab das etwas falsch aufgeschrieben...
So sollte es aussehen:
______________________________________________________________________
RewriteEngine On
Options +FollowSymlinks
RewriteBase /
# Fuer die Kleinanzeigen
RewriteRule ^kurzerdateiname,([^,]*),([^,]*),([^,]*)(\\.html)?$ umstaendlicher_datei_name_und_lang.php?ka_id=$1&mail=$2&top=$3 [L]
# Rule Fuer die Module
RewriteRule ^(.+)(\\.html)?$ modules.php?name=$1
______________________________________________________________________
Beitrag geändert: 16.12.2008 15:53:00 von nikic
Beitrag geändert: 16.12.2008 15:53:37 von nikic
Beitrag geändert: 16.12.2008 15:53:49 von nikic -
Also ich geh mal davon aus, dass das bloß andere Indikatoren für die einzelnen variablen sind.
Hab jetzt deine Rules komplett übernommen und 'domain.de/bernd.html' aufgerufen erwartete ausgabe war 'Array ( [name] => bernd ) ' aus der modules.php... ergebnis ist allerdings: 404
interessant ist, dass wenn ich die 'domain.de/modules.php' aufrufe, die ausgabe 'Array ( [name] => modules.php ) ' erscheint Oo selbst wenn ich an die 'domain.e/modules.php?a=b' aufrufe bekomme ich nur 'Array ( [name] => modules.php ) '
sehr komisch -
Hast du mal versucht ne andere php-Datei zu "öffnen", zum Beispiel halloworld.php. Villeicht gehts ja nicht wegen edr html-Endung.
-
ich hab schon echt viel versucht...
bsp:
'domain.de/bernd.html' (das was eig funktionieren sollte^^) - 404
'domain.de/bernd.htm ' - 404
'domain.de/bernd.php ' - 404
'domain.de/bernd ' - 404
'domain.de/modules.php'- Array( name => modules.php ) (also ganz komisch Oo)
hast du evtl MSN, ich hab das gefühl, dass das hier im forum auch etwas schwierig ist mit der komunikation^^ -
Hier auf LimaCity ist Mod_rewrite vom Appachen her aber deaktiviert oder!?
Das bezog sich jetzt alles komplett auf seine lokale Installation!? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage