2009-04-02 7 views
1

Dieses ist von einer .htaccess unter/~ neuen gelegen/Warum sollte dieser .htaccess-Ordner entfernt werden?

# invoke rewrite engine 
    RewriteEngine On 

# force domain.com to www.domain.com 

RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$0 [R=301,L,NC] 

Wenn http://domain.com/~new/hello zugreift, wird es zu http://www.domain.com/hello

Der www. hinzugefügt wird wie neu geschrieben werden sollte, aber aus irgendeinem Grund ignoriert das Unterverzeichnis/~ new /.

Weiß jemand, was das verursacht? Zu Ihrer Information, es gibt ein .htaccess in der TLD, aber es ist leer. Ich weiß, ich könnte an/~ neu/an die Regex-Ersatzzeichenfolge anheften, aber ich würde eine generische Lösung (für die Portabilität) bevorzugen und ich bin mir nicht sicher, warum sie es überhaupt auszieht. Ich habe auch versucht, mit RewriteBase herumzuspielen, konnte es aber nicht zum Laufen bringen.

Dank

Antwort

2

Ich denke, normalerweise die {REQUEST_URI} in Ihrer Rewrite-Regel wären:

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www..* 
RewriteCond %{HTTP_HOST} !^$ 
RewriteCond %{HTTP_HOST} ^([^.]*).(com|com/) 
RewriteRule ^.*$ www.%1.%2%{REQUEST_URI} [R=301,L] 
+0

ich http einzufügen hatte: // vor dem www in Ihrem RewriteRule und es funktioniert! Da sich meine Website auf einer australischen Domain befindet, habe ich Ihre (com | com /) in (com.au | com.au/) geändert. Vielen Dank! – alex

+1

Eigentlich habe ich den letzten Teil geändert in ([a-z \.] {2,6} – alex