Drupal will sich nicht über Subdomain aufrufen lassen [gelöst]
am 17.01.2007 - 09:55 Uhr in
Hallo mitnander,
ich versuch jetzt schon seit ein paar Tagen, Drupal beizubringen, dass es sich mit seiner Subdomain anfreunden soll. Aber es streikt.
Die Verzeichnisstruktur auf meinem Webspace ist die:
Diese URL soll ersetzt werden durch http://sub.domain.de, die laut Confixx auf /blabla/drupal verweist.
Alle unten gemachten Angaben treten unabhängig davon auf, ob die Funktion "Suchmaschinenfreundliche URLs" aktiviert oder deaktiviert ist. Die Standard-Angabe in der .htaccess, die im Ordner /drupal/ liegt, für die RewriteBase ist /blabla/drupal.
Was mich nun wundert:
1) Ist in der settings.php als base_url www.domain.de/blabla/drupal (ohne Slash nach "drupal") angegeben, funktioniert die Seite, allerdings lässt sie sich seltsamerweise NICHT über die Subdomain aufrufen... Sehr komisch.
2) Steht in der settings.php als base_url http://sub.domain.de drin und ist die o.g. Angabe für RewriteBase in der .htaccess unverändert, lässt sich mit der Subdomain lediglich die Startseite aufrufen, und ein Aufruf über www.domain.de/blabla/drupal zeigt mir zwar die Startseite, aber ohne Theme. Alle Links im Menü verweisen nun nämlich seltsamerweise statt auf http://sub.domain.de/seitenalias auf http://www.domain.de/seitenalias. Der Browser spuckt mir dann verständlicherweise den 404 - not Found Error aus.
3) Steht in der settings.php die Subdomain drin und trag ich in der .htaccess im Drupal-Ordner zusätzlich als RewriteBase entweder / oder http://sub.domain.de ein, streikt drupal komplett und ich bekomm vom Browser auch beim Aufrufen der Startseite einen Internal Server Error (500).
Was mach ich falsch?!
Kennt jemand das Problem und könnte mir dabei ein Stückchen weiterhelfen?
Liebe Grüßlis,
Sarah
- Anmelden oder Registrieren um Kommentare zu schreiben
Wenn ich im CPanel meines
am 17.01.2007 - 10:57 Uhr
Wenn ich im CPanel meines Webhosters so Umleitungen angebe, kommt es vor, daß die mir eine .htaccess ins Drupal-Verzeichnis legen, und die .htaccess vom Drupal überschreiben. Dann funktioniert erstmal nichts mehr so richtig (muss die Drupal .htaccess hochladen und eben selbst anpassen).
Wenn deine Seite sowohl über domain.de/blabla/drupal als auch sub.domain.de erreichbar sein soll, brauchst du zwei verschiedene sites/ Einträge dazu, mit der passenden base URL für jede site.
Deine Beschreibung klingt so, als hättest du nur eine site (ein settings.php), was dann für die jeweilige andere URL nicht funktioniert.
Confixx überschreibt die Drupal .htaccess nicht
am 17.01.2007 - 11:44 Uhr
Das Config-Tool meines Webhosters, mit dem ich auch die Subdomain eingerichtet habe, ist (noch) Confixx, und das hat hier keinen Einfluß auf die .htaccess von Drupal. Die ist immer noch die gleiche wie vorher.
Und ja, es stimmt, ich habe nur eine einzige settings.php, die im Verzeichnis drupal/sites/default/.
Kannst du das, was du mit dem Satz
Wenn deine Seite sowohl über domain.de/blabla/drupal als auch sub.domain.de erreichbar sein soll, brauchst du zwei verschiedene sites/ Einträge dazu, mit der passenden base URL für jede site.
meinst, bitte etwas genauer ausführen (so anleitungsmäßig - es wär toll wenns für beide urls ginge, aber hauptsach is, dass erstmal der aufruf über die subdomain einwandfrei funktioniert)? Mit dieser Eigenschaft von Drupal kenn ich mich nämlich noch überhaupt nicht aus... Oder gibts da irgendwo ne gute Doku zu?
Und was genau würdest du als RewriteBase in die .htaccess reinschreiben? Bzw. muß dort überhaupt was geändert werden?
Danke für deine Hilfe.
Grüßlis,
Sarah
Für Confixx: Per FTP
am 17.01.2007 - 12:46 Uhr
Für Confixx:
Per FTP einloggen und im Ordner /html zwei neue Ordner anlegen, einen für deine Domain, einen für die Subdomain. Dateien entsprechend umkopieren.
Im Confixx dann für Domain (mit und ohne "www.") und Subdomain den Eintrag für das Verzeichnis entsprechend anpassen.
Die Inhalte einer Subdomain haben nichts innerhalb der Verzeichnisstruktur einer anderen Domain zu suchen.
"I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." -Alan Kay
Aha?
am 17.01.2007 - 14:02 Uhr
Hallo Alexander,
das war mir neu. Denn bisher hat es auch so funktioniert wies jetzt ist.
Meine Domain verweist (mit und ohne www) bisher direkt auf /html ,wo ne index.html liegt; Die eigentliche Homepage liegt dagegen im Ordner /html/meinehomepage/ und ist über meinehp.doman.de erreichbar. Und das obwohl die Subdomain auf einen Ordner innerhalb der Verzeichnisstruktur von www.domain.de verweist.
Wie erklärst du dir das?
Abgesehen davon finde ich es sehr praktisch, nicht für jeden einzelnen Ordner, der in /html liegt, ne extra Subdomain einrichten zu müssen (manche Ordner sind nämlich nur temporär auf meinem Webspace vorhanden, so erspare ich mir die zusätzliche Subdomain-Editiererei im Confixx). So muss ich mir nur den Namen des Ordners merken und häng ihn im Browser einfach an www.domain.de/ an. Wenn www.domain.de auf nen Unterordner von /html/ verweist, geht das ja afaik nicht mehr.
Neugierige und leicht verwirrte Grüße,
Sarah
Für statische Websites ist
am 17.01.2007 - 15:06 Uhr
Für statische Websites ist es technisch auch irrelevant wie im Webspace Domain und Subdomain verdengelt werden. Suschmaschinen werden sich beim Auffinden der exakt gleichen Inhalte unter unterschiedlichen URLs aber freuen dir eine passende Strafe im Ranking verpassen zu können. (Die Unsicherheit ob und wie welche Suchmaschine z.B. die URLs meinedomain.de/test.html und www.meinedomain.de/test.html bewerten führt dazu, dass serverseitig gerne per mod_rewrite umgeleitet wird..)
Zu Absatz 1:
Was soll ich mir da erklären?
Zu Absatz 2:
Dann legst du deine temporären Ordner halt im Unterverzeichnis der gewünschten (Sub-)Domain an. Der Aufwand ist derselbe.
"I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." -Alan Kay
An der .htaccess sollte
am 17.01.2007 - 15:56 Uhr
An der .htaccess sollte eigentlich nichts geändert werden müssen. Ich habe allerdings eine Rewrite-Rule, die immer auf einen festen Namen umleitet, da bei meinem Provider eine Subdomain zwangsweise leider auch ueber www.hauptdomain.de/subdomainname und subdomainname.hauptdomain.de erreichbar ist, wenn die eigentliche URL doch www.zweitdomain.de sein sollte. (Ist halt Billigprovider).
Als Doku schau dir mal die README.txt an, was dort zu Multisite Setup steht. Die Doku ist bei Drupal 4 etwas dürftig, bei der README.txt von Drupal 5 ausführlicher. Auch wenn du eigentlich nur eine Seite hast, wenn sie unter mehreren URLs erreichbar ist, musst du praktisch das gleiche machen wie bei einem Multisite Setup.
Habs ausprobiert.
am 17.01.2007 - 16:56 Uhr
Hallo Alexander,
hab deinen Hinweis mal versuchshalber in die Tat umgesetzt und meine Domain sowohl mit als auch ohne www auf einen Unterordner von /html verweisen lassen. Und auch darauf geachtet, dass die für Drupal gedachte Subdomain mit keiner anderen Subdomain kollidiert. Danach hab ich die Drupal-Subdomain in die settings.php, die in drupal/sites/default/ liegt, als base_url eingetragen und danach im Browser aufgerufen.
Das Ergebnis hierbei war das gleiche wie als zuvor. Nur die Startseite aufrufbar und die links im menü verweisen nach wie vor auf www.domain.de/seitenalias . Seltsamerweise gibts diesmal aber keinen Error 500 mehr, wenn ich zusätzlich in der htaccess als RewriteBase / angeb. Nur ändern sich die Links im menü dadurch auch nicht. Komisch.
Hast du vielleicht noch den
am 17.01.2007 - 17:01 Uhr
Hast du vielleicht noch den Seiten-Cache in Drupal aktiviert?
"I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." -Alan Kay
Werd mich über Multisite-Setups informieren.
am 17.01.2007 - 17:07 Uhr
Danke @frostschutz,
das hilft mir schon ein ganzes Stück weiter. Hab mich grad mal über das readme zur Installation der Version 5.0 hergemacht.
Werd versuchen umzusetzen, was dort drinsteht und gleichzeitig Alexanders Tip mit der Umstrukturierung der Ordner auf meinem Webspace mit einbeziehen.
Werde hier Bericht erstatten, ob alles geklappt hat, oder ob noch irgend was anderes faul ist.
Danke für eure atemberaubend schnelle Unterstützung!
Grüßlis,
Sarah
Der Übeltäter ist entlarvt!
am 17.01.2007 - 21:46 Uhr
Hallo mitnander,
Und zwar hatte ich Dummerchen in grauer Vorzeit mal in der page.template.php des aktuell verwendeten Themes einen Eintrag hinzugefügt, der dort unnötigerweise nochmals die base_url definiert hat.
Mich wunderts jetzt nicht mehr, warum die HP nicht auf div. Edits in der settings.php und der .htaccess reagiert hat. Hab diesen gesamten Eintrag aus dem Template-File rausgenommen - und siehe da es funktioniert! *JUHU* *freuhops*
Ich mach mich damit jetzt zwar vor euch voll peinlich, möcht euch aber trotzdem an meiner Freude teilhaben lassen.
Deinen Vorschlag, Alexander, die Verzeichnisstruktur auf dem Webspace so anzulegen, dass sich die verwendeten Subdomains dabei nicht in die Quere kommen, hab ich übrigens berücksichtigt. So viel zum Umsortieren wie ich im ersten Augenblick dachte, wars dann doch nicht. Eigentlich musst ich nur für die Domain nen eigenen Ordner erstellen und den Pfad auf den sie verweisen soll, ändern. Die paar temporären Ordner, die dadurch zur Zeit nur noch per FTP zugänglich sind, beinhalten im Moment eh keine wichtigen Daten.
Die Cache-Funktion von Drupal war übrigens die ganze Zeit über an, aber mit nur sehr kurzer minimaler Zwischenspeicherzeit.
Ich möcht euch nochmal ganz herzlich für eure hilfreiche Unterstützung danken; hab heut doch wieder so einiges dazugelernt, von dem ich vorher keinen blassen Schimmer hatte.
Grüßlis,
Sarah
P.S: im Ordner drupal/sites/ gibts bei mir weiterhin nur das Verzeichnis default; in der darin befindlichen settings.php hab ich die ganze Zeile mit der base_url auskommentiert. Und in der .htaccess hab ich mit der Zeile zur RewriteBase das gleiche gemacht. Mit dieser hab ich nämlich unbewusst eine Endlosschleife fabriziert, die beinah den Server meines Hosters in die Knie gezwungen hat... Also lieber Finger weg, wenn ihr nicht genau wisst, welche Bedeutung/Auswirkung diese Zeile hat! (Ich hab mein Ziel zum Glück auch ohne erreicht ;)