# HILFE mein mod_rewrite funktioniert ...



## RaverHH (4. September 2004)

... aber leider nicht richtig :-(

Vielleicht hat ja einer eine Lösung für mein Fehler:

Nur zu Testzwecken habe ich ein Testverzeichnis angelegt und zwei Dateien darin abgespeichert:

1. Datei -> link1.html soll nur auf auf die link2.html verlinken

```
<html>
<head>
<title>Title here!</title>
</head>
<body>
<?php
echo $REQUEST_URI."<p>";
?>
<p>
statische Links
<p>
<a href="link2/open/messages.html">Link 2</a>
</body>
</html>
```

2. Datei -> link2.html soll zurück auf die link1.html verlinken

```
<html>
<head>
<title>Title here!</title>
</head>
<body>
<?
echo $REQUEST_URI."<p>";
?>
<a href="link1/open/messages.html">Link 1</a>
</body>
</html>
```

Die .htaccess sieht folgendermassen aus:

```
AddType application/x-httpd-php .php .php4 .php3 .phtml .htm .html

RewriteEngine on
RewriteCond %{REQUEST_URI}/test ^/(.*)/(.*)/(.*)\.html$
RewriteRule ^/test/(.*)/(.*)/(.*)\.html$ /test/$1.html?$2=$3 [L]
```

Nach unzähligen suchen nach tut's und stundenlangen hin und her testen klappt dies endlich. Die link1.html geht auf die link2.html. Nur wenn ich zurück auf die link1.html möchte dann bleibt er auf der link2.html und gibt folgendes durch den REQUEST_URI aus:

/test/link2/open/link1/open/link1/open/messages.html

Das heisst, er ersetzt dass messages durch den neuen link an die link1.html; besser gesagt, er nimmt messages weg und fügt den link hinten ran.
Doch wie kann man es schaffen, daß er auf die link1.html verlinkt?


----------



## Sven Mintel (4. September 2004)

Probiers mal so:

```
AddType application/x-httpd-php .html

RewriteEngine on
RewriteBase /test
RewriteRule ^.*([^/]+)/([^/]+)/([^/]+)\.html$ /test/$1.html?$2=$3 [L]
```

Auf diese Art erhältst du jedoch immer längere URLs in den Links(und der Browser-Adresszeile)...da durch nicht redirectest ([R]).
Da wäre es empfehlenswerter, wenn du die Links a'la

```
<a href="/test/link2/open/messages.html">
```
 schreibst.


----------



## RaverHH (4. September 2004)

leider auch nicht

in der Adresszeile steht

/link1/open/messages.html
und es kommt ein 404 Fehler, da er jetzt das /test weg lässt


----------



## RaverHH (4. September 2004)

Sorry, war eben mein fehler. 

funktioniert jetzt. Muss jetzt nur nochmal der Sache auf den Grund gehen wieso weshalb warum. Denn ich hatte auch schon mit L , R , S oder P probiert.


----------



## RaverHH (4. September 2004)

Nur wie kann ich es jetzt eigentlich auslesen? mit GET funktioniert es irgendwie nicht.


```
if(isset($_GET['open'])){
     $dat=$_GET['open'];
     echo $dat;
}
```

gibt irgendwie nix aus ?


----------

