# mod_rewrite



## sipoh (29. Januar 2009)

Hallo,

ich habe eine Seite, die bereits URLs umwandelt:

index.php?id=122 -> news.html

Ich möchte der URL news.html aber noch Sachen anhängen. Z. B. so:

news-B-0-10.html o. ä.

Beim Daraufklicken auf einen Link news-B-0-10.html möchte ich aber weiterhin die Inhalte angezeigt bekommen, die unter news.html erscheinen, es soll aber in der Adressleiste die neue URL news-B-0-10.html stehen.

Ist das möglich?


----------



## Gumbo (29. Januar 2009)

```
RewriteRule ^news-B-0-10\.html$ /news.html [L]
# oder
RewriteRule ^news-B-0-10\.html$ /index.php?id=122 [L]
```


----------



## sipoh (30. Januar 2009)

Das funktioniert leider nicht.

Der Inhalt von news.html wird nicht beim Klicken auf news-alle-B-0-10.html angezeigt.


```
RewriteEngine On

RewriteRule ^typo3$ - [L]
RewriteRule ^typo3/.*$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^news-alle-B-0-10\.html$ /news.html [L]

RewriteRule ^[^/]*.(html|pdf)$ index.php
RewriteBase /
```


----------



## Gumbo (30. Januar 2009)

sipoh hat gesagt.:


> ich habe eine Seite, die bereits URLs umwandelt:
> 
> index.php?id=122 -> news.html


Das hatte ich eigentlich vorausgesetzt. Ich habe aber auch noch eine Alternative genannt:
	
	
	



```
RewriteRule ^news-B-0-10\.html$ /index.php?id=122 [L]
```
Funktioniert das denn nicht?


----------



## sipoh (30. Januar 2009)

Weder noch, Gumbo. Die Seite ist auf Typo aufgesetzt. Mir wird also immer die Startseite angezeigt. index.php?id=146 - Eine Seite mit dieser ID gibt es. Sollte die Regel greifen, müsste die doch eigentlich angezeigt werden.


----------



## sipoh (30. Januar 2009)

Hier zum Beispiel


```
RewriteRule ^allereferenzen_(.*)_(.*)(\.html?)$ *index\.php?id=$1&bst=$2
```

habe ich aus einem sonst üblichen Link *index.php?id=146&bst=B* diesen Link gemacht:

*allereferenzen_146_B.html *

Was passiert, ist eine Weiterleitung auf *index.php?id=.. *Diese wird dann in der Adressleiste angezeigt. Das ist doch aber nicht im Sinne des mod_rewrites.


----------



## Gumbo (30. Januar 2009)

Probier dann mal Folgendes:
	
	
	



```
RewriteEngine On
RewriteRule ^typo3(/|$) - [L]
RewriteRule ^allereferenzen_(\d+)_([^/.]+)\.html$ index.php?id=$1&bst=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(html|pdf)$ index.php [L]
```


----------



## sipoh (30. Januar 2009)

Das führt leider auch nicht zum Erfolg. Ich bin recht ratlos. Ich habe mal auf meinem Webspace einen Unterordner angelegt und dort solch eine Regel ausprobiert. Was funktioniert hat.

Warum das im root-VZ nicht funktioniert, kann ich mir beim besten Willen nicht erklären.


----------



## Gumbo (30. Januar 2009)

Wie rufst du das denn jetzt auf?


----------



## sipoh (30. Januar 2009)

So rufe ich das auf:

http://www.domain.de/referenzen-alle_146_B.html (führt zur Startseite)

Analog:

http://www.domain.de/index.php?id=146&bst=B (zeigt das, was ich *eigentlich*  mit o. g. Link sehen will)

.htaccess


```
RewriteEngine On

RewriteRule ^typo3(/|$) - [L]

RewriteRule ^referenzen-alle_(\d+)_([^/.]+)\.html$ index.php?id=$1&bst=$2 [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule \.(html|pdf)$ index.php [L]
```


----------



## sipoh (30. Januar 2009)

Ich hatte gerade einen Tippfehler:

Wenn ich das so schreibe:

RewriteRule ^referenzen-alle_(.*)_(.*)\.html$    ***index.php?id=$1&bst=$2 [L]

werde ich weitergeleitet und in der Adressleiste steht http://www.domain.de/index.php?id=146&bst=..

Kannst du dir das erklären?


----------

