hab schon a bisserl rumprobiert aber ich steck da grad irgendwie fest.
Undzwar hab ich probiert eine Subdomain via .htaccess anzulegen (was auch gut funktioniert) und dann weiter unten hab ich ne “regel” geschrieben das wenn die domain nicht die original domain ist auf die originale weitergeleitet werden soll (wegen duble content) da fangt aber wieder das problem mit der subdomain an …
Denn wenn ich dann schule.pii.square7.ch aufrufe werde ich auf pii.square7.ch/schule umgeleitet
Hab jetzt zwar einfach eine extra .htaccess datei in dem unterordner “schule” reingelegt die die domain wieder zurück ändert/weiterleitet aber das ist (finde ich nicht wirklich optimal)
RewriteCond %{HTTP_HOST} schule.pii.square7.ch$ [NC]
RewriteCond %{REQUEST_URI} !/schule/
RewriteRule ^(.*)$ /schule/$1 [L] #Bis hier klappt alles
RewriteCond %{HTTP_HOST} ^text.pii.square7.ch$ [NC] # Wenn die domain test.pii… ist soll die RewriteRule nicht ausgeführt werden
RewriteCond %{HTTP_HOST} ^schule.pii.square7.ch$ [NC] # Auch hier wieder, wenn die domain schule.pii… ist soll die RewriteRule nicht ausgeführt werden
RewriteCond %{HTTP_HOST} !^pii.square7.ch$ [NC] # Wenn die Domain aber keine der obengenannten is und auch nicht die “standard”-domain dann soll die RewriteRule ausgeführt werden
RewriteRule ^(.*)$ http://pii.square7.ch/$1 [R=301,L][/code]
PS: Hab den account namen abgeändert weil des Projekt noch nicht fertig is und ich nicht möchte das es Suchmaschinen etc schon finden (Sollte der Name von Bedeutung sein bitte bescheid sagen)
Dein Fehler ist eigl. nur nen fehlendes Not (!) bei den Conds der Subs
Hier mal ne “optimierte” Version der .htaccess
[code]RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.(test1|test2).pii.square7.ch$ # if Sub + www.
RewriteRule ^(.*)$ http://%1.pii.square7.ch/$1 [L] # goto sub without www.
RewriteCond %{HTTP_HOST} ^(test1|test2).pii.square7.ch$ [NC] # if sub
RewriteCond %{REQUEST_URI} !^/%1/ # not subs folder
RewriteRule ^(.*)$ /%1/$1 [L] # goto subs folder (intern)
RewriteCond %{HTTP_HOST} !^(test1|test2).pii.square7.ch$ [NC] # if not sub
RewriteCond %{HTTP_HOST} !^pii.square7.ch$ [NC] # and not main
RewriteRule ^(.*)$ http://pii.square7.ch/$1 [R=301,L] # goto main
[/code]
danke … jetz geht meine .htaccess datei (aber der Fehler is ja schon peinlich naja hab mich bis jetz auch noch nicht so wirklich intensiv mit htaccess beschäftigt nur des was ich halt mal gebraucht hab )
Hab deine aber auch mal probiert aber was ich bist jetzt herausgefunden hab das die ersten 2 „blocke“ anscheinend einen Fehler haben (denn wenn man sie auskommentiert kommt kein 500er mehr)
Die von mir gepostete .htaccess Funktioniert^^ Schließlich hatte ich sie getestet [size=85](natürlich mit ner anderen Domain… sehe aber gerade keinen Fehler)[/size]
Hoffe du hast die Kommentare entfernt Sowas gehört weder in PHP noch in ne .htaccess^^ [size=85](also nicht in die benutzten Files sondern wenn dann in die dev Files^^ Aka: lokal mit Kommentaren, aufm Server minimized, ohne)[/size]
komisch … habes grade nochmals probiert und ich bekomm immer nur nen 500 'er.
Naja is nicht so schlimm wahrscheinlich liegst an mir (obwohl ich eigentlich Copy&Paste und pii durch richtigen account ersetzten kann ^^, und test1 und test2 in das entsprechende ändern)… oder kann des sein das du’s auf nem eigenen server getestet hast wo ne andere konfiguration ist als auf square7 (bzw. bplaced)?
eigl. sollte es gehen… ich habs zwar net hier getestet… aber mod_rewrite bleibt mod_rewrite [size=85](eigl. bzw. es sollte)[/size]
Es könnte aber auch einfach daran gelegen haben das bei der 1. kein externer-Redirect war [size=85](wobei die Cond vermutlich eh net zutraf)[/size]
[code]RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.(test1|test2).pii.square7.ch$ [NC]
RewriteRule ^(.*)$ http://%1.pii.square7.ch/$1 [R=301,L]
RewriteCond %{HTTP_HOST} !^(test1|test2).pii.square7.ch$ [NC]
RewriteCond %{HTTP_HOST} !^pii.square7.ch$ [NC]
RewriteRule ^(.*)$ http://pii.square7.ch/$1 [R=301,L]
[/code]
wenns noch immer net geht, dann schick ma PM mit deiner .htaccess^^
Nachtrag @ 4/22/2011 3:48 PM
ok… der Code oben geht net mod_rewrite ist teils echt bescheuert geschrieben… so fehlt mir z.B. aktuell noch ne Möglichkeit einen Rewrite zu erkennen, da REQUEST_URI auch durch den Rewrite geändert wird und damit nicht mehr das vom Browser ist. [size=85](selbst wenns intern umgeleitet ist)[/size]
Jedenfalls geht der obere Code nicht, da bei einer Condition im 2. Teil keine Backreferences gehen. is jetzt zwar bissle umständlicher, aber so gehts [code]RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.(subdomain1|subdomain2).domain.tld$
RewriteRule (.*) http://%1.domain.tld/$1 [R=301,L]
RewriteCond %{HTTP_HOST} !^(subdomain1|subdomain2).domain.tld$
RewriteCond %{HTTP_HOST} !^domain.tld$
RewriteRule (.) http://domain.tld/$1 [R=301,L]
[/code]Nach wie vor existiert jedoch das Problem, das subdomain1.domain.tld/subdomain2 den Inhalt der 2. Subdomain hätte bzw. subdomain1.domain.tld/subdomain1 den selben Inhalt wie subdomain1.domain.tld/
Man könnte das aber zumindest ein wenig limitieren in dem man in die Ordner der Subdomains ne .htaccess packt…
Ggf. auch einfach [i]"RewriteRule (.) /%1/$1 [L]"[/i] durch “RewriteRule (.*) /sb_%1/$1 [L]” o.ä. ersetzten.