Mod-Rewrite

Moin,
ich kriegs einfach nicht hin.
ich möchte aus
xxxxxx.de/index.php?show=kader
->
xxxxxx.de/kader

machen.

Ich habe die .htaccess schon mehrfach bearbeitet

RewriteEngine on
RewriteRule ^([a-zA-Z0-9]+)$ index.php?show=$1
Options -Indexes 

Es will einfach nichts passieren, also gar nichts keine Fehlermeldung, nichts.

Danke schon mal für eure Hilfe.

Gruß
duffintor

Hi,

probier’s mal so:

Hmm
irgendwie greift die Regel immer noch nicht.
die interne URL lautet:

Die .htaccess befindet sich im “dritte” Ordner ist das richtig?

jop,is richtig.
eigentlich solleten die rules greifen.

grüße,
sebastian

Danke für die schnellen Antworten nochmal.

Gibts denn sonst noch was außergewöhnliches zu beachten.

So wie ich Mod-Rewrite verstehe überprüft der Apache die Adresszeile und ersetzt gegebenfalls diese mit dem in der Regel definierten.

Ich habe die Links in meinem Menü auch noch beim alten gelassen:
index.php?show=willkommen
index.php?show=kader
etc…

Ich verstehe selbst auch nicht warum die Regeln bei mir nicht funktionieren.
Kann es am Browser liegen?

nein, eigentlich nicht.
versuche mal die regeln einzeln zu definieren:

Es passiert einfach nichts.

So langsam werde ich nervig, aber ich irgendwie klappt das gar nicht.
Es ist wie als wenn ich nichts in die .htaccess reinschreibe es macht nichts.

Bei meinem Domain-Hoster habe ich eine Unsichtbare Weiterleitung bedeutet:
Domainname bleibt erhalten und ab dann kommt die index.php

Dazu steht auch, dass die .htaccess in dem Ordner auch funktioniert.
Ich schließe also das mal aus.

Ich verstehe es nicht. Habe auch von einer anderen Seite einen gang simplen Code:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.de$ [NC]
RewriteRule ^(.*) http://www.domain.de/$1 [R=301]

Dieser funktioniert auch nicht.

geht es denn, wenn du es ohne die domain versuchst?
also mit der bplaced domain?

grüße,
sebastian

leider auch nicht.

verrückt.

Ich weiß nicht mehr weiter.

Gruß
duffinator

hi,
mal unabhängig vom thema, aber
duffinator.bplaced.de/dritte/ind … eldkatalog
du hast da iwo nen groben zeichensatz-fehler drin, üs und €s werden nicht korrekt dargestellt

grüße
emil

@emil
Ich hatte irgendwann mal versucht alles mit dem w3c Validator komform zu machen. Aber viel zu viel Zeitaufwand, werde die Seite auch mal neu gestalten müssen.
Aber vorerst hatte ich den Meta-Tag eingefügt:

<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

Müsste damit dem Browser egal sein ob man Umlaute als ä oder ä schreibt?

@lenz
Habe jetzt noch eine andere .htaccess Rule probiert

Diese funktioniert auch wunderbar.

Hat jemand noch einen anderen Lösungsansatz für mein Problem oder hatte jemand schon mal so ein Problem, dass die Regeln nicht greifen?

Gruß
Duffinator

ist das ne richtige domain?

Jap.

Das ist die Domain der Seite auf der ich das alles anwenden möchte

Das kann er doch gar nicht.
Die „Adresszeile“ befindet sich bei mir, in meinem Browser, auf meinem Client - da hat der Webserver überhaupt keinen Zugriff, wieso sollte er auch?

mod_rewrite schreibt ggf. die Abfrage um, die den Server vom Client aus erreicht hat.

[quote]Ich habe die Links in meinem Menü auch noch beim alten gelassen:
index.php?show=willkommen
index.php?show=kader
etc…[/quote]
Dann sind genau das auch die Anfragen, die der Browser an den Server schickt.

[quote]Ich verstehe selbst auch nicht warum die Regeln bei mir nicht funktionieren.
Kann es am Browser liegen?[/quote]
Nein, sondern daran, dass du gar nicht verstanden hast, was mod_rewrite macht, und was nicht.

Wenn du willst, dass deine Links auf /willkommen und /kader verlinken - dann musst du die Links selbstverständlich in deinem HTML-Code entsprechend notieren.

Das bedeutet ich müsste anstatt:

so:

?

Entschuldigung für meine dummen Fragen, mit der .htaccess steh ich ein bisschen auf Kriegsfuß. Denke aber das ich in PHP ganz pfiffig bin und es soweit verstanden habe mit GET und POST etc.
Lasse mich aber gerne eines besseren belehren.

[quote=“duffinator”]Das bedeutet ich müsste anstatt:

so:

?[/quote]
Wenn du wirklich auf index.php/willkommen verlinken willst …?

Ich dachte aber, du wolltest auf /willkommen verlinken.

Ok.
also im Menü schreibe ich beispielsweise:

Das habe ich verstanden.

So jetzt habe ich aber eine content.php, welche per Get die Variable show, die ich ja vorher im Link mit enthalten habe, ausliest und den passenden Content läd.

Da stehe ich jetzt völlig auf dem Schlauch.
Dachte bei mod-rewrite wird die interne URL übergeben, in meinem Fall: index.php?show=willkommen und diese wird dann umgeschrieben in /willkommen.

Wäre für eine allgemeine Aufklärung dankbar.
Ich pick das nicht.

Gruß
duffinator

Genau andersherum: /willkommen lautet die den Server erreichende Anfrage, und diese willst du intern in scriptname.php?parametername=wert umschreiben, damit durch diese Anfrage dein Script mit dem passenden Parameter aufgerufen wird.

Ich habe das mal probiert.
Also wenn ich die Menülinks so verändere:

<a href="http://www.domain.tld/willkommen">Willkommen</a>
<a href="http://www.domain.tld/kader">Kader</a>

Dann wende ich diese Regel an:

RewriteEngine on
RewriteRule ^([a-zA-Z0-9]+)$ index.php?show=$1

So aber dann komme ich immer auf die 404 Fehlerseite.

Woran liegt das?

Gruß
duffinator

Edit:
Also um mal weiter zu kommen.
Die Menülinks sind richtig?
und
Der Fehler liegt jetzt nur noch in der Regel?
Danke nochmal, wenn man mir diese zwei Fragen beantworten könnte.

So ich habs jetzt geschafft.

Für alle anderen:
Meine .htaccess

RewriteEngine on
RewriteRule ^([^/.]+)$ index.php?show=$1 [L]
RewriteRule ^([^./]+)/([^/.]+)$ index.php?show=$1&action=$2 [L]

Meine Menülinks sehen so aus

<a href="http://www.turo3.de/willkommen" class="eins">Startseite></a>
<a href="http://www.turo3.de/neues" class="eins">Neues></a>
<a href="http://www.turo3.de/spiele" class="eins">Spiele></a>
<a href="http://www.turo3.de/spiele/fspiele" class="eins">Freundschaft</a>

Wer dazu Hilfe benötigt, kann sich an mich wenden.