2010-12-14 7 views
3

Filepath mit: /Users/user_name/Sites/example.comWie mod_rewrite machen * nicht * Home-Verzeichnis Erweiterung durchführen, wenn .htaccess

Browseable an: http://localhost/~user_name/example.com/

In einem Kinderbuch (chrome) bekam ich einen .htaccess wie folgt aus:

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule ^rgba\((\d{1,3}%?,\s?\d{1,3}%?,\s?\d{1,3}%?,\s?[0-1]?\.?\d+)\)$ rgba.php?rgba=$1 [PT] 

Das ist wie eine Anforderung entspricht:

http://localhost/~user_name/example.com/chrome/rgba(255,255,255,0.5) 

und soll die Anfrage neu zu schreiben:

http://localhost/~user_name/example.com/chrome/rgba.php?rgba=(255,255,255,0.5) 

ich die rgba.php setzte im chrome Verzeichnis. Dennoch bekomme ich diesen Fehler msg:

The requested URL /Users/user_name/Sites/example.com/chrome/rgba.php was not found on this server. 

ich das Teil im Handbuch über Home-Verzeichnis Expansion und die [PT] Flag lesen, aber es macht keinen Unterschied.

Wenn ich einen vhost auf das Verzeichnis example.com aufstellen, funktioniert es. Ich möchte, dass es in beide Richtungen funktioniert = P

Also, wie mache ich das?

Ich betreibe Apache/2.2.15 (Unix) auf einem Mac OS X

EDIT AllowOverride zu All für den Benutzer Sites Verzeichnis eingestellt ist. Wenn es nicht wäre, hätte das Umschreiben vielleicht gar nicht funktioniert.

+0

Ich stehe vor einem ähnlichen Problem. Irgendeine Chance, dass du zufällig eine Lösung gefunden hast? –

+0

Nein, ich habe nicht =/ – anddoutoi

+0

@SaurabhNanda und OP, überprüfen Sie meine Antwort. Hoffentlich hilft es dir oder zumindest jemand anderem. –

Antwort

-1

Erlauben Sie Überschreibungen in Ihrer Konfigurationsdatei für Ihre Home-Verzeichnisse.

+0

Es ist. (15 Zeichen) – anddoutoi

+0

Dies ist eine falsche Antwort. Das Zulassen von Überschreibungen löst es auch nicht. –

1

Ich verbrachte einen halben Tag damit, mir den Kopf zu zerbrechen und die einzige Lösung, die ich finden konnte, war, einen neuen VirtualHost mit dem DocumentRoot zu erstellen, der auf das Home-Verzeichnis des Benutzers gesetzt wurde.

1

Heiliger Gott, der frustrierend war. Aber ich habe es funktioniert.

Ich habe eine Menge Zeug ausprobiert. I dachte, dass die PT-Flag auf der RewriteRule würde es beheben, aber nein.

Ich weiß immer noch nicht, wie die Erweiterung des Home-Verzeichnisses zu stoppen, aber ich habe eine Problemumgehung gefunden. Verwenden Sie vor dem RewriteRuleRewriteBase /~user_name/example.com/chrome/. Dies überschreibt das Präfix des Rewrite (log Eintrag aus der Liste meiner config):

<SNIP> (2) [perdir /Users/colin/Sites/ajaxtest/] trying to replace prefix /Users/colin/Sites/ajaxtest/ with /~colin/ajaxtest/ 

UPDATE

Diese Lösung etwas funktioniert, aber es scheint, die Rewrite-Engine Trigger zweimal zu machen ... einmal für die interne Weiterleitung und wieder danach. Am Ende habe ich nur einen VirtualHost wie den anderen Submitter benutzt.

Verwandte Themen