modrewrite erste schritte

Dann sag mal genaue Ordnerstruktur und zeig die htaccess Datei (Inhalt) mal her. Das müsste egientlich funktionieren. Diese "seite.php" existiert aber? Im ordner "lernen"
 
also:

ordner lernen inhalt:

seite.php
.htaccess


code seite.php:

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<a href="?id=1">Link 1</a><br />
<a href="?id=2">Link 2</a><br />
<a href="?id=3">Link 3</a><br />
<?php 
if(!empty($_GET['id'])) {
    echo $_GET['id'];
}
?>

</body>
</html>

code .htaccess:

Code:
RewriteEngine on 
RewriteRule ^seite_([0-9]+).html$ seite.php?id=$1

es gibt keine weiteren Dateien oder codeteile.


Ich verstehe es ja überhaupt nicht warum es überhaupt nichts macht. Bin wirklich blutiger Anfänger und ja ich habe die sachen rauskopiert von der oben genannten seite.

Alle einstellungen geprüft die im tut standen bzw ihr mir genannt habt.

ändere ich an der rewriteRule etwas, zB nehme ich das id=$1 weg, dann führt es zu einem Fehler.
// Das habe ich mit absicht einmal gemacht um zu sehen ob die Zeile überhaupt gelesen wird und es ist somit ein beabsichtigter Fehler gewesen
 
Wie bereits gesagt habe gestern damit angefangen und als test folgendes script genutz:

RewriteEngine On
RewriteRule ^ http://www.adino.at [R,L]

dadurch wurde jeder aufruf auf die angegebene Domain weitergeleitet.

Wenn dies bedeutet das es läuft, dann JA
wenn es dadurch nicht bedeutet das es läuft, dann Keine Ahnung.

Ich bin wirklich zu unerfahren um das beurteilen zu können.

Was ebenfalls dafür spricht das es läuft ist das wenn ich in der Zeile das $ weglasse es zu einem Fehler kommt.
 
Ja, das sollte bedeuten, dass es funktioniert...
...alxy ist nicht allein ratlos :D

Folgendes:
1) Folgendes in die http.conf:
Code:
RewriteLog "C:/xampp/apache/logs/modrew.txt" 
RewriteLogLevel 9
Zuerst suchen, ob einer/beide Einträge schon vorhnden sind.
Dann eben nur ändern, statt neu dazuschreiben

2) Server neustarten (aus und wieder an

3) Den Problem-Aufruf machen

4) RewriteLogLevel wieder auf 0 stellen (=aus)

5) Server noch einmal neustarten (nicht nur wegen der Einstellung,
auch zum Flushen der Logs (falls nötig))

6) Inhalt der Logs (modrew, error, access) von der betreffenden Zeit zeigen
 
Super, ich freue mich irgendwie, obwohl ih fehler angezeigt bekomme aber damit kann man besser arbeiten als mit gar nichts ;9

So error log 9 ergibt folgendes?

::1 - - [31/Aug/2013:15:46:56 +0200] [localhost/sid#90b9f8][rid#8d900b8/initial] (3) [perdir C:/xampp/htdocs/lernen/] strip per-dir prefix: C:/xampp/htdocs/lernen/seite.php -> seite.php
::1 - - [31/Aug/2013:15:46:56 +0200] [localhost/sid#90b9f8][rid#8d900b8/initial] (3) [perdir C:/xampp/htdocs/lernen/] applying pattern '^seite_([0-9]+).html$' to uri 'seite.php'
::1 - - [31/Aug/2013:15:46:56 +0200] [localhost/sid#90b9f8][rid#8d900b8/initial] (1) [perdir C:/xampp/htdocs/lernen/] pass through C:/xampp/htdocs/lernen/seite.php
::1 - - [31/Aug/2013:15:46:58 +0200] [localhost/sid#90b9f8][rid#8d940c8/initial] (3) [perdir C:/xampp/htdocs/lernen/] strip per-dir prefix: C:/xampp/htdocs/lernen/seite.php -> seite.php
::1 - - [31/Aug/2013:15:46:58 +0200] [localhost/sid#90b9f8][rid#8d940c8/initial] (3) [perdir C:/xampp/htdocs/lernen/] applying pattern '^seite_([0-9]+).html$' to uri 'seite.php'
::1 - - [31/Aug/2013:15:46:58 +0200] [localhost/sid#90b9f8][rid#8d940c8/initial] (1) [perdir C:/xampp/htdocs/lernen/] pass through C:/xampp/htdocs/lernen/seite.php
::1 - - [31/Aug/2013:15:46:59 +0200] [localhost/sid#90b9f8][rid#8d900b8/initial] (3) [perdir C:/xampp/htdocs/lernen/] strip per-dir prefix: C:/xampp/htdocs/lernen/seite.php -> seite.php
::1 - - [31/Aug/2013:15:46:59 +0200] [localhost/sid#90b9f8][rid#8d900b8/initial] (3) [perdir C:/xampp/htdocs/lernen/] applying pattern '^seite_([0-9]+).html$' to uri 'seite.php'
::1 - - [31/Aug/2013:15:46:59 +0200] [localhost/sid#90b9f8][rid#8d900b8/initial] (1) [perdir C:/xampp/htdocs/lernen/] pass through C:/xampp/htdocs/lernen/seite.php


Dann umstellung auf error log 0 folgendes:

sowohl in der neuen datei wie auch in der error log keine neuen einträge.

Denke ist normal da wenn ich das im tut richtig verstanden habe die 9 angibt welche fehlerarten angegeben werden sollen und0 bedeutet keine anzeigen.


EDIT// die acces war nicht dabei hier:


::1 - - [31/Aug/2013:15:46:56 +0200] "GET /lernen/seite.php?id=3 HTTP/1.1" 200 424 "http://localhost/lernen/seite.php?id=2" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"
::1 - - [31/Aug/2013:15:46:58 +0200] "GET /lernen/seite.php?id=2 HTTP/1.1" 200 424 "http://localhost/lernen/seite.php?id=3" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"
::1 - - [31/Aug/2013:15:46:59 +0200] "GET /lernen/seite.php?id=2 HTTP/1.1" 200 424 "http://localhost/lernen/seite.php?id=2" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"
::1 - - [31/Aug/2013:15:51:31 +0200] "GET /lernen/seite.php?id=2 HTTP/1.1" 200 424 "http://localhost/lernen/seite.php?id=2" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"
::1 - - [31/Aug/2013:15:51:32 +0200] "GET /lernen/seite.php?id=2 HTTP/1.1" 200 424 "http://localhost/lernen/seite.php?id=2" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"
::1 - - [31/Aug/2013:15:51:34 +0200] "GET /lernen/seite.php?id=3 HTTP/1.1" 200 424 "http://localhost/lernen/seite.php?id=2" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"
::1 - - [31/Aug/2013:16:21:09 +0200] "GET /lernen/seite.php?id=3 HTTP/1.1" 200 424 "http://localhost/lernen/seite.php?id=2" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"
::1 - - [31/Aug/2013:16:21:11 +0200] "GET /lernen/seite.php?id=2 HTTP/1.1" 200 424 "http://localhost/lernen/seite.php?id=3" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"
 
Zuletzt bearbeitet:
So nach langem hin und her und massig versuchen habe ich einen sehr großen fortschritt für mich Persönlich erringen können.

Die Lösung des Problems war einfach, es gab keines. In meinem Kopf war etwas falsch.

RewriteRule ^/(\w+)/(\w+)/(\w+)$ index.php?lnav=$2&mnav=$3&vnav=$1

ich ging fest davon aus, das aus dem rechten Teil ab index.php der linke Teil erzeugt werden soll was wie ich nun weiß falsch ist.

Ich habe die links geändert, nun übermittel ich nicht mehr: <a href="?lnav=$2&mnav=$3&vnav=$1"> sondern <a href="kat1/kat2/kat3">
Es wird im Browser auch wie gewünscht angezeigt.

Also ich habe mich als ich das bemerkte gefreut.

Doch dann kam etwas anderes. beim klick auf den link: ERROR 404 Seite nicht gefunden -.-

Nächster schritt, ich habe alle Unterordner erstellt in den letzten eine index.php gemacht und siehe da, es klappt.

Jetzt sitze ich hier und denke mir: Irgendwie muss ich da doch wieder was falsch verstanden haben oder nicht?

Meine Gedanken, ich will doch nur das es im Browser so ist und nicht das ich wirklich den Pfad gehe um dort eine Datei aufzurufen, dann könnte ich mir den Umweg ja mal komplett sparen.

Also ich bleibe dabei, irgendwas muss ich hier gänzlich falsch verstehen, denn ich vermute stark das durch die neue link angabe die htaccess ja gar nicht mehr gebraucht wird da es ja der standart link ist was man schon am ersten Tag in html lernt.

Jedenfalls drehe ich mich im Kreis,

welcher teil besagt was bei rewriteRule die hier genannt wurde.
wie muss ein link simpel in html aussehen um verarbeiten zu werden

bin ich auf dem richtigen weg oder komme ich weiter davon ab?
 
Ja, diesen Beitrag von dir hatte ich bereits mal gelesen und ihn zu dem Zeitpunkt nicht verstanden, inzwischen läuft es soweit und der Beitrag ist verständlich ;)

Das einzige was mir noch unschlüssig ist und was nicht gelingen will an der sache ist: rewriteBase

Ich habe ja die links nun umgeschrieben in brp: <a href="/com/mitglieder/username/">

Die Domain müsste lauten: localhost/projekt/com/mitglieder/username/

wenn ich den link jedoch anklicke leitet sie auf localhost/com/mitglieder/username/ weiter.

Habe rewriteBase auf /projekt stehen wird aber denoch falsch umgesetzt.

Gelöst habe ich es indem ich alles vom Server genommen haben und direkt auf localhost/ arbeite nur das kann so sicher nicht gedacht sein.

Jedenfalls wirft das alles bei mir noch eine Menge fragen auf, auf die ich noch keine Lösung habe und wo ich fleissig google nutze, traue mich kaum die alle zu stellen
 
Zurück