# Seiten und htaccess Problem



## Flextone (26. Mai 2007)

Hi

ich habe ein Problem bei folgender Programmierung.

Ich habe diverse Seiten die mit index.php?section=XYZ gezogen werden.
Ich arbeite mit htaccess um ein mod_rewrite zu gestalten.

Nun gibt es zwei folgende Cases um die Seiten zu switchen.

ins und ins_add 

Ich habe gemerkt das htaccess nur damit klar kommt wenn nach ins andere Seitenamen genutzt werden. Daas heißt eine ins_add gibt es für htaccess nicht, da ins bereits im Case enthalten war.
Nun weiß ich nicht genau welche Commandos in der htaccess-File jede einzelne Regel nach einem Treffer abbricht, damit man keinen Endlos durchlauf hat und die ins und ins_add gezogen werden können.

Ein Text mit xxx anstatt ins_add war erfolgreich.

Brauch Hilfe.

Danke!


----------



## Gumbo (26. Mai 2007)

Sehr viele verwirrende Worte. Könntest du das Problem bitte noch einmal etwas verständlicher erläutern.


----------



## Flextone (26. Mai 2007)

Gerne.

Also:

Ich lade meine einzelnen Seite in meine index.php

```
case "ins":
	include("pages/inserat.php");
	break;
```
So würde der Inhalt der Datei inserat.php eingeladen.

Das zusammen mit htaccess würde ins.html statt index.php?section=ins ergeben.

Nun habe ich aber einmal die section ins und einmal die Section ins_add.

ich vermute das htaccess nur die ersten 3 Buchstaben nimmt als ins. Weil ich das mit dem Test die Section in xxx umzubenennen teste konnte. Meine Seite war also über xxx.html zu finden.

Nun muss ich doch bestimmt htaccess sagen, er soll mehr als nur ins (weil es ins_add auch noch gibt) zu durchsuchen, weil sonst andere Seiten nicht mehr geladen werden können.


----------



## Gumbo (26. Mai 2007)

Wie sieht denn die dazugehörige Regel aus?


----------



## Flextone (26. Mai 2007)

```
RewriteEngine on
RewriteBase /
RewriteRule ^([a-z]*).html index.php?section=$1 [L]
```


----------



## Mairhofer (26. Mai 2007)

Hoffentlich hab ich jetzt alles richtig verstanden.

Deine Rewrite Rule besagt, das alle Zeichen von A-Z mehrmals vorkommen können.
"ins_add" enthält einen Unterstrich, vielleicht liegt es daran, das die Rule nicht greift.

Probier mal aus, das _ Zeichen in die RW Rule hinzuzufügen als gültiges Zeichen und schau obs dann geht.


----------



## Flextone (26. Mai 2007)

Danke. Es lag am _ 

ich habe nun die Seite insadd getauft, mit welcher Regel könnte ich denn ein _ erlauben?


----------



## Mairhofer (26. Mai 2007)

Ich weiss nicht, ob "\w" unterstützt wird hier (\w = a-z _ ). Das zweite sollte funktionieren


> RewriteRule ^([\w]*).html index.php?section=$1 [L]
> oder
> RewriteRule ^([a-z_]*).html index.php?section=$1 [L]


----------



## Gumbo (26. Mai 2007)

Die Zeichenklasse \w entspricht [a-zA-Z0-9_]. Daher lieber:
	
	
	



```
RewriteRule ^([a-z_]+)\.html$ index.php?section=$1 [L]
```


----------

