# Kniffliges mod_rewrite-Problem



## 27apricot (21. Juni 2006)

Hallo allerseits,

ich habe ein kniffliges .htaccess/mod-rewrite Problem.

Hier mal der Anfang der .htaccess:

```
# directory listing deaktivieren:
Options -Indexes

# php-datei als index festlegen:
DirectoryIndex index.php

# schicke urls:
RewriteEngine on
Options +FollowSymlinks 
RewriteBase /

RewriteRule ^nachrichten/([0-9]+)[/]*$ 			index.php?i=nachrichten&id=$1
RewriteRule ^nachrichten_archiv[/]*$ 			index.php?i=nachrichten_archiv
```
Dazu natürlich weitere Regeln. In obiger Form kommt »Error 500, Internal Server Error«, nach Angabe meines Providers erscheint in der apache-Log-Datei »Options not allowed here«. Wenn ich die Optionen auskommentiere, erscheint »Fehler 403, Forbidden«. Wenn ich nun auch noch die Zeile »RewriteEngine on« auskommentiere, wird die Startseite angezeigt, die Regeln für weitere Seiten aber werden ignoriert.

Nach Angaben meines Providers ist in der Apache-Konfiguration (Apache 1.3.33) folgendes angegeben:
RewriteEngine on
Options all
AllowOverride all
Der Kundenberater nahm nun an, dass es an meinen Regeln läge, dass es nicht funktioniert. Dagegen spricht aber, dass ich auf einem anderen Server beim selben Provider genau so arbeite und dort alles funktioniert. Dort kann ich auch die Options und das Anschalten der RewriteEngine auskommentieren oder stehen lassen – völlig egal: es funktioniert. Wenn ich das gleiche Projekt auf den ersten Server speichere, gibt es die gleichen Fehlermeldungen. Laut Kundenberater sind aber die Apache-Konfigurationen komplett identisch.

Jetzt hab' ich mir mal die PHP-Info-Ausgabe auf beiden Servern angesehen
Und da gab es einige Unterschiede:
1. auf dem wo's nicht geht, steht etwas von SourceGuardian (SourceGuardian Loader support enabled), außerdem mehrere Einträge zu »Cache-Control« und unter »Environment« SSH_CLIENT/SSH_TTY/SSH_CONNECTION/MAIL/HOME/USER. All das gibt es auf dem zweiten Server nicht.
2. auf dem Server, wo es funktioniert steht mehrmals etwas zum AUTH_TYPE und USER. Diese Seite ist per .htaccess passwort-geschützt. Ich nehme an, dass es daran liegt. Diese Angaben fehlen beim ersten Server.

Ist ein langer Beitrag, ich weiß. Aber ich bin echt verzweifelt und bringe heute schon den ganzen Tag damit zu, ohne auch nur annähernd eine Lösung zu finden.

Danke schon im Voraus:
27apricot


----------



## Gumbo (21. Juni 2006)

Probier mal Folgendes:
	
	
	



```
Options -Indexes +FollowSymlinks
DirectoryIndex index.php

RewriteEngine   on
RewriteRule     ^nachrichten/([0-9]+)/?$   /index.php?i=nachrichten&id=$1    [L]
RewriteRule     ^nachrichten_archiv/?$     /index.php?i=nachrichten_archiv   [L]
```


----------



## 27apricot (21. Juni 2006)

Hallo Gumbo,

Vielen Dank. Doch es bleiben die selben Fehler: Mit den Options Fehler 500, ohne Options, aber mit »RewriteEngine on« Fehler 403 und ohne beides die funktionierende Startseite, aber Fehler 404 (Datei/Verzeichnis nicht gefunden) bei den Unterseiten.

Schöne Grüße:
27apricot.


----------



## Gumbo (21. Juni 2006)

Du musst „SymLinksIfOwnerMatch“ oder „FollowSymLinks“ in der Server-Konfiguration für das „htdocs“-Verzeichnis freigeschalten.


----------



## 27apricot (21. Juni 2006)

Gumbo hat gesagt.:
			
		

> Du musst „SymLinksIfOwnerMatch“ oder „FollowSymLinks“ in der Server-Konfiguration für das „htdocs“-Verzeichnis freigeschalten.


Hallo nochmal,

an die Server-Konfiguration komme ich nicht ran. Der Kundenberater des Providers aber versicherte mir, dass alles (RewriteEngine on, Options all, AllowOverride all) freigeschaltet sei. Allerdings inzwischen nur noch für ein Unterverzeichnis, das über eine Subdomain (sub.domain.tld) aufgerufen wird (und in dem ich diese Dinge teste). Als es vorher noch für das ganze Verzeichnis galt, hat es aber auch nicht funktioniert.

Ciao: 27apricot.


----------



## Gumbo (21. Juni 2006)

Dann gehe noch mal die Liste der FAQ des modrewrite.de-Forums durch. Da habe ich den Tipp auch her.


----------



## 27apricot (21. Juni 2006)

Gumbo hat gesagt.:
			
		

> Dann gehe noch mal die Liste der FAQ des modrewrite.de-Forums durch. Da habe ich den Tipp auch her.


Das ist so ähnlich wie http://robert-ionescu.de/giga-faq/faq/internet/homepage/mod-rewrite.html?1, aus dem ich heute schon dem Kundenberater ausführlich zitiert habe.

Kann es sein, dass der Apache-Server nicht neu geladen wurde, das aber sein muss nach solchen Änderungen? Wenn ja, geht das überhaupt mal einfach so? Schließlich sind da ja noch andere von dem Server abhängig.

Danke + schöne Grüße:
27apricot


----------



## Gumbo (21. Juni 2006)

Ich schätze schon, dass Apache neu gestartet werden muss, damit die Änderungen übernommen werden.


----------



## Sven Mintel (21. Juni 2006)

Nach Änderungen in .htaccess muss der Server nicht neu gestartet werden.


----------

