# RewriteRule Frage (ISPConfig 3.0.1.4)



## Dan (5. Okt. 2009)

Hallo,

ich habe eine recht gebräuchliche RewriteRule zum Entfernen der index.php aus der URL in meiner .htaccess platziert. Leider funktioniert das nicht korrekt.

meine htaccess:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

Bekomme einen 404 Error.
Gibt es da eine alternative Rule die mit ISpConfig funktioniert oder habe ich ein config Problem?

Ziel:  /index.php/news/  --rewrite-->  /news/


Danke für nen Tipp.

D.


----------



## Till (5. Okt. 2009)

1) Was steht im error log der Website.
2) Es gibt bei ISPConfig nichts spezielles zu beachten, ist ein ganz normaler 0815 apache vhost.


----------



## Dan (9. Okt. 2009)

Zitat von Till:


> 1) Was steht im error log der Website.
> 2) Es gibt bei ISPConfig nichts spezielles zu beachten, ist ein ganz normaler 0815 apache vhost.


2 Fehler:
Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

und

[warn] mod_fcgid: stderr: PHP Fatal error:  Unknown: Failed opening required '' (include_path='.:/usr/share/pear:/usr/share/php') in Unknown on line 0

Aufegefallen ist auch, dass PATH_INFO und ORIG_PATH_INFO nicht zur Verfügung stehen.
Habe in meinem script die Vars ersetzt durch REDIRECT_URL bzw. REQUEST_URI.

Meine laufende .htaccess schaut nun so aus:

RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

Das läuft sauber.

Vielleicht kannst du daraus etwas ableiten ob es hier ggf. Konflikte mit den ipsconfig3 eigenen Rewrite Rules gibt.
Wäre schön die Hintergründe zu verstehe. Bin für Hinweis dankbar.

Danke,
Dan

ps: ispconfig 3.0.1.4 final, php 5.3 mod_fcgid auf centos 5.3


----------



## Till (11. Okt. 2009)

Schalte die ispconfig rewrite rules aus. Du kannst nicht zwei verschiedene rewrite rules nehmen die sich "im Kreis" gegenseitig umleiten.


----------



## Dan (17. Okt. 2009)

wie kann ich das machen und welche Auswirkungen hat das auf sonstiges normales ISPconfig3 Verhalten?

würde es helfen die rewrite rules über das Direktiven Feld der Domain einzubetten?

D.


----------



## Till (17. Okt. 2009)

> wie kann ich das machen und welche Auswirkungen hat das auf sonstiges normales ISPconfig3 Verhalten?


das hat mit ISPConfig verhalten nichts zu tun. Esc geht hier um Einstellungen einer Webseite.



> würde es helfen die rewrite rules über das Direktiven Feld der Domain einzubetten?


Nein. das ist keien Frage wie die Eingebettet sind. 

Also was Du vorher hattest ist eine rule die dich von a nach b leitet und dann hattest Du noch eine zweite die Dich zurück von b nach a leitet. Du läufts also im Kreis und das merkt der apache und stoppt die Seitenauslieferung, sonst würde irgendwann der Server abstürzen.

Die rewrite Rules von ispconfig sind sehr einfach, Du findest sie in der vhost datei. Die leiten einfach nur eine Domain oder subdomain in ein Verzechnis um.


----------



## Dan (17. Okt. 2009)

da haben wir uns glaube ich missverstanden.

ich habe nur eine Rule (Ziel die index.php aus der url zu nehmen)
diese funktionierte jedoch nicht, mit besagten obigen Fehlern.

habe diese dann solange angepasst bis das Ergebnis rauskam was ich ursprünglich wollte (keine index.php in der url):

_aus RewriteRule ^(.*)$ index.php/$1 [L]   _(<--funktioniert nicht)

wurde dann also 

_RewriteRule .* index.php [L]_   (<-- funktioniert)


Mir ist nur vollkommen unklar warum erstere Variante nicht funzzt obwohl das Standard ist.


Gruss,
Dan

ps: es gibt keine weiteren rules, auch keine weiterleitende einstellung bei der webseite. es geht um die hauptdomain im root (bzw: /web)


----------



## Till (18. Okt. 2009)

Das Ziel einer Weiterleitung die Du über ISPConfig einrichtest darf ja auch keine Datei sein, es muss zwingend ein Verzeichnis sein. Wenn DU was anderes brauchst, dann musst Du manuell eine rewrite Rule erstellen.


----------

