# mod_rewrite Profis gefragt



## xtratz (15. Oktober 2005)

Hallo Leute,

leider bekomme ich folgendes Problem nicht alleine in den Griff.
Ich möchte diese URL:

artikel.php/xPD/33/kat_name/Backup-Software

In diese umwandeln:

artikel.html/xPD/33/kat_name/Backup-Software

Allerdings bekomme ich immer nen Error 404.
Wenn hinter artikel.html nichts steht dann gehts mit meinem Code.


```
RewriteEngine on
RewriteRule ^(.*).html$ $1.php
```

Ansonsten eben nicht.
Hat jemand ne Idee.


Gruss


----------



## SilentWarrior (15. Oktober 2005)

Wo hast du denn den Code her? Der ist definitiv nicht selbst geschrieben. Du solltest dich erstmal mit den Grundlagen von regulären Ausdrücken auseinandersetzen, bevor du dich an sowas ranmachst. -> das erste Dollar-Zeichen (nach html) bedeutet, dass die Zeichenkette »html« nur am Ende eines Strings auftauchen darf – das tut sie aber in dem von dir genannten Beispiel nicht, dort taucht sie mittendrin auf.


----------



## Gumbo (15. Oktober 2005)

> … das erste Dollar-Zeichen (nach html) bedeutet, dass die Zeichenkette »html« nur am Ende eines Strings auftauchen darf


Nicht ganz: Das Muster besagt, dass ein „html“ am Ende der Zeichenkette stehen muss, der von mindestens einem oder mehr beliebiger Zeichen vorangesetzt sein müssen. Diese dürfen „html“ auch mehrfach beinhalten.


Probier mal Folgendes:
	
	
	



```
RewriteEngine	on
RewriteRule	^(.+)\.html(.*)$	$1.php$2	[L]
```


----------



## xtratz (15. Oktober 2005)

Das is der Wahnisnn 
Funktioniert Danke Dir.

Viele Grüße.


----------



## xtratz (16. Oktober 2005)

Eine Frage noch geht das jetzt auch noch so das ich ein Verzeichnis davon ausnehmen kann ?.

Also die htaccess liegt im Rootverzeichnis und ich möchte nicht das die Regel auf das Verzeichnis admin angewendet werden soll da es sonst Fehlermeldungen hagelt.


Geht das 

Bin leider kein htaccess Profi.

Gruss und Danke für die Unterstützung.


----------



## Gumbo (16. Oktober 2005)

Um generell Verzeichnisse auszuschließen, könntest du mit der „RewriteCond“-Direktive arbeiten:
	
	
	



```
RewriteCond	${REQUEST_FILENAME}	!-f
```
Ein einzelnes Verzeichnis auszuschließen, sollte mit Folgendem funktionieren:
	
	
	



```
RewriteCond	${REQUEST_FILENAME}	!^admin/
```


----------

