You are not logged in.

  • Login

1

Thursday, December 30th 2010, 2:58am

.htaccess - Dateiendung löschen und inhalt einer Variable übergeben

Hey Leute,
sitz grad wieder seit ewigkeiten an einer .htaccess ohne Erfolgsziele . auch Google konnte mir bei meiner Suche nicht helfen :/

Undzwar will ich das folgender Link wie folgt aussieht:
www.musterman.de/index.php?section=news
soll so aussehen
www.musterman.de/news

mein aktueller Code ist ziemlich kurz - sollte aber rein von der Logik her gehen.. :/

Source code

1
2
RewriteEngine on
RewriteRule (.*)$ index.php?section=$1

2

Thursday, December 30th 2010, 9:26am

Hi,
die selbe Regel greift aber auch wieder auf die index.php.
Das führt zu einer Endlosschleife.

Lösung: Du musst existierende Dateien und Ordner auslassen. Außerdem noch das [L] für letzte Regel.

Source code

1
2
3
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule (.*)$ index.php?section=$1 [L]

3

Thursday, December 30th 2010, 11:49am

Ne, geht leider auch nicht, kann das was damit zu tun haben da es sich komplett alles in einer tieferen ordner-strucktur befindet?
hab oben auch nochmal "RewriteEngine On" dazugschrieben - aber ohne hab ich's auch probiert.

4

Thursday, December 30th 2010, 12:09pm

Ich denke, der Code müsste wie folgt lauten:

Source code

1
2
3
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?section=$1 [L]

Eventuell musst du den Pfad zur index.php anpassen, die .htaccess-Datei verschieben oder RewriteBase setzten.

5

Thursday, December 30th 2010, 12:16pm

Hey Florian und d0nut,

hab den Code jetzt einen Freund gezeigt und der meinte (.*) ist die falsche herangehensweise da so jedes zeichen erlaubt wird - so werden auch ordner etc. weitergeleitet
nun hab ich einfach nur noch .* (das ja bekanntlich für Kein oder mehr beliebige Zeichen steht) durch [a-z]* ersetzt.. und nun geht es auch wunderbar!

hier der richtige Code:

Source code

1
2
RewriteEngine On
RewriteRule ^([a-z]*)$ index.php?section=$1


dachte ehrlich gesagt auch nicht das die lösung so einfach ist, aber trotzdem danke an euch beide :))

Similar threads

Social bookmarks