2012-04-09 4 views
6

Ich versuche, die Recess PHP framework auf meinem Web-Host (Dreamhost) zu installieren. Es umfasst die folgenden .htaccess:.htaccess RewriteRule verursacht 403 Forbidden

Options FollowSymLinks 
RewriteEngine On 
RewriteRule ^([^.]+)$ $1.html [QSA] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ bootstrap.php [QSA,L] 

Dies funktioniert auf meinem Rechner (XAMPP 1.7.7 auf Windows 7), führt aber zu 403 Forbidden Fehler auf einige Dateien meine Web-Host. Alle Verzeichnisberechtigungen sind auf 755 festgelegt, und alle Dateiberechtigungen sind auf 644 festgelegt. PHP wird unter demselben Benutzer ausgeführt, dem die Dateien gehören.

Die folgenden URLs führen 403s:

  • http://test.dd.moofz.com/
  • http://test.dd.moofz.com/recess-conf.php
  • http://test.dd.moofz.com/index.php
  • http://test.dd.moofz.com/bootstrap.php
  • http://test.dd.moofz.com/ MIT-LIZENZ

Die folgenden URLs nicht:

  • http://test.dd.moofz.com/.gitignore
  • http://test.dd.moofz.com/httpd_logo_wide.gif
  • http://test.dd.moofz.com/README.textile
  • http://test.dd.moofz.com/the-book-of-recess.pdf

Was würde dies dazu führen, geschehen?

Antwort

8

Wie sich herausstellte, musste ich die Linie ändern:

Options FollowSymLinks 

zu:

Options +FollowSymLinks 
+0

great! Ich werde es nicht zu leicht finden, du rettest mir viel Zeit. Vielen Dank im Voraus! – orafaelreis

+0

Vielen Dank! Ich kann jetzt die verrückten Pillen wegräumen. – freeworlder

2

Nicht vertraut mit diesem Framework, aber es sieht aus wie entweder gibt es einige Zeilen anderswo oder es muss möglicherweise optimiert werden.

Obwohl ich zugegebenermaßen kein mod Rewrite-Experte bin, sieht aus wie erste Zeile leitet alle Anfragen an request_file.html, dann auf Linie 2, wenn die Datei, um sie boostrap.php auf der Leitung ruft nicht vorhanden 3.

Ihr Problem könnte in der boattrap.php liegen, sehen Sie, was in diesem Skript passiert und wie die Anfrage gehandhabt wird. Ein Debugger kann in diesem Schritt nützlich sein. Obwohl Sie dies möglicherweise zur Arbeit bekommen, scheint es mir möglicherweise nicht optimal, wie ist. Zum Beispiel glaube ich, dass es normalerweise einen Regelsatz gibt, der die Vermeidung von .gif, .jpg .css, die auf Ihr Routing-Skript gerichtet sind, vermeidet. So etwas wie dieses:

Dies vermeidet den Overhead von php behandeln die Anforderungen für diese Arten von Dateien. Es gäbe sogar noch mehr Dinge, die Sie für eine stabile Anwendungsproduktion in Betracht ziehen sollten, Sie sollten nur Ihre Regeln anpassen, damit alles richtig geroutet wird und alles in Ordnung sein sollte.