• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

mod_rewrite

matcho

Mitglied
Hey..
vielleicht kann man jemand über folgende Anweisung drüber schauen. Funktioniert seltsamerweise einfach nicht.

Die Url hat im moment den Aufbau:
index.php?content=bereich und soll zu bereich.html werden

ich habe im hauptordner aufm server ne .htaccess liegen mit folgendem inhalt

Code:
RewriteEngine ON
RewriteCond %{REQUEST_URI}  ^/[^.]+$
RewriteBase /content
RewriteRule ^([^/]*) /index.php?content=$1  [L,R=301]
die daten liegen im übergeordneten content-ordner...

selbst folgende Testanweisung funktioniert nicht.

Code:
[FONT=Arial][SIZE=3][COLOR=#000000]RewriteEngine on  
RewriteBase /content 
RewriteRule index.html index.php?content=home[/COLOR][/SIZE][/FONT]
habe auch schon die Ordnerangabe weg gelassen (bzw RewriteBase / angegeben ) und die .htaccess in den content-ordner geschoben... :roll:
 
Was heißt "funktioniert nicht"? Was passiert? Gibt es einen Error 500? Was sagt das access-Log dazu?

Tipp: vielleicht ist auch mod_rewrite gar nicht aktiviert oder für deinen Host freigeschaltet ;)

Gruß aus Leipzig nach Leipzig ;)
 
Ich kann die Verzeichnisstruktur aus der Beschreibung nicht ganz nachvollziehen.

Code:
/
    .htaccess
    content/
        index.php

Aufruf von /bereich.html soll werden zu /content/index.php?content=bereich ?

Das wäre etwa:

Code:
RewriteEngine on
RewriteRule ^([^/]*)\.html content/index.php?content=$1 [L]
 
Was heißt "funktioniert nicht"? Was passiert? Gibt es einen Error 500? Was sagt das access-Log dazu?

Tipp: vielleicht ist auch mod_rewrite gar nicht aktiviert oder für deinen Host freigeschaltet ;)

Gruß aus Leipzig nach Leipzig ;)

Hey Leipzscher ;)
mit nix passieren, meine ich, dass sich an der url nichts verändert....
also index.php?content=bereich wird nicht zu bereich.html

laut phpinfo wird das modul mod_rewrite mit geladen
selbst local funktioniert es nicht...

@mermshaus: die htaccess liegt im root und deren anweisungen sollen für den darin enthaltenen ordner content gelten (daher auch dasRewriteBase /content)

wenn ich nun die ordneranweisung weglasse und die htaccess gleich in /content speichere, funktioniert es leider auch nicht...
 
umgekehrt wäre es wohl wenig sinnvoll. Wer will schon eine lange URL eingeben, wobei man es ganz einfach machen könnte? :D
 
genau umgekehrt...

die links auf der webseite haben die struktur

index.php?content=bereich und sollen über htaccess zu bereich.html etc formatiert werden :???:

oder willst du damit sagen, dass ich die "notation" vertauschen muss???

(ps: bin leider noch nicht zu hause, um es zu testen)
 
Genau. Das Abfragen eines GET-Parameters erfordert etwas Gebastel. In etwa so sollte es passen:

Code:
RewriteEngine on

# Absoluter Pfad vom Serverroot zum Verzeichnis, in dem bereich.html liegt
# (nötig für R=301)
RewriteBase /nb/sandbox/matcho/

RewriteCond %{QUERY_STRING} ^content=([a-z]+)

# Das Fragezeichen besagt, dass der bestehende Query-String (?content=...)
# entfernt werden soll; %1 ist das erste Match aus der vorherigen RewriteCond
RewriteRule ^index\.php$ %1.html? [R=301,L]
 
Zurück
Oben