350 Nachrichten unter 93 Themen von 105 Mitgliedern
[SilverStripe Roadmap][Changelog]

SS in Unterverzeichnis von webroot, aber TLD look&feel

Seite: 1 1130 mal gelesen
  • vr
    vr Community Member
    4 Beiträge

    SS in Unterverzeichnis von webroot, aber TLD look&feel

    Hallo,

    scheint ein Klassiker für die FAQ zu sein, aber keine der zig Antworten, die ich bisher gesehen hab, tut 100%ig:

    habe SS in ein Unterverzeichnis 'silverstripe" der webroot installiert, um die webroot nicht so zu verwüsten. Klappt auch alles bestens, nur steht natürlich immer /silverstripe/ hinter <meinedomain>. Das wär ich gern los, es soll von aussen so aussehen, als wär SS in der TLD installiert. Aber wie genau? Ich habs fürs front end hingekriegt, aber dann kann ich mich im admin-Bereich nicht mehr einloggen, es kommt immer wieder die login-Seite.

    Die Zutaten sind anscheinend ein oder zwei htaccess, außerdem ein Eintrag Director::setBaseURL("<meinedomain>/"); in _config.php. Wie sieht die empfohlene Konfiguration für diesen Fall aus? Wer von euch hat diese Kombi richtig rund zum Laufen gekriegt? Also nach außen wie eine TLD-Installation, aber trotzdem voll funktionsfähiger Adminbereich.

    Ich bin doch nicht der einzige, der sein Silverstripe in einem Unterverzeichnis liegen hat, aber dafür keine Subdomain einsetzt ;-)

    Grüße, Volker
  • vr
    vr Community Member
    4 Beiträge

    Re: SS in Unterverzeichnis von webroot, aber TLD look&feel

    Hi,

    hab die Antwort auf die Frage selbst gefunden, dank einiger Anregungen von Marcus im internationalen Forum. Mein Setup ist SS 2.4.0, apache, php 5.1.2:

    Man braucht:

    - 2 .htaccess files, eine in webroot and eine im "silverstripe" Unterverzeichnis.
    - 2 Einträge in _config.php.

    Mein SS Unterverzeichnis heisst "silverstripe", ersetzt das bitte durch den Namen eures Unterverzeichnisses:

    ######## .htaccess webroot: ############

    ### SILVERSTRIPE START ###
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /silverstripe/
    RewriteCond %{REQUEST_URI} !^/silverstripe/
    RewriteRule ^(.*)$ /silverstripe/$1
    </IfModule>
    ### SILVERSTRIPE END ###

    ############### .htaccess silverstripe Unterverzeichnis: ##############

    ### SILVERSTRIPE START ###
    <Files *.ss>
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
    </Files>

    <Files web.config>
    Order deny,allow
    Deny from all
    </Files>

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteCond %{REQUEST_URI} ^(.*)$
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule .* sapphire/main.php?url=%1&%{QUERY_STRING} [L]
    </IfModule>
    ### SILVERSTRIPE END ###

    ################ _config.php: ##################
    ...
    SiteTree::enable_nested_urls();
    Director::setBaseURL("/");
    ...

    Probierts mal aus, würde mich über Feedback freuen.

    Grüße, Volker
  • Bastir
    Bastir Community Member
    1 Beitrag

    Re: SS in Unterverzeichnis von webroot, aber TLD look&feel

    Hi, der Beitrag hier hat mir schonmal ein Stück weitergeholfen. Aufruf der Website aus einem Unterverzeichnis klappt. Jedoch gibts da noch eine kleines Problem:

    Und zwar wenn ich den Codeschnippsel in die _config.php: kopiere
    ...
    SiteTree::enable_nested_urls();
    Director::setBaseURL("/");
    ...

    Schreibt er die URL richtig, sprich domain.de/info jedoch werden jetzt die CSS Dateien der Website sowie vom CMS Backend nicht mehr geladen.

    Im Quellcode verweist der CSS Link direkt auf das Theme ohne Unterverzeichnis.

    Gibt es dazu eine Lösung?



  • derralf
    derralf Community Member
    1 Beitrag

    Re: SS in Unterverzeichnis von webroot, aber TLD look&feel

    Super! Danke!

    Ich hatte ein ähnliches Problem, es ging dabei aber um eine Subdomain.
    Das war bei einem Hoster, bei dem ich nicht (wie sonst oft üblich) eine Domain/Subdomain im Kundencenter direkt auf ein Verzeichnis schicken konnte.
    - Webroot: domain.de / Typo-Installation
    - Unterordner "silverstripe": subdomain.domain.de / SS-Installation
    SS 2.4.5 / PHP Version 5.2.6

    folgende Konfiguration, die auf vrs Vorschlag basiert hat mir weitergeholfen:



    ######## .htaccess webroot: ############

    ### SILVERSTRIPE START ###
    RewriteEngine On
    ReWriteCond %{HTTP_HOST} subdomain.domain.de
    ReWriteCond %{REQUEST_URI} ! silverstripe/
    RewriteBase /silverstripe/
    ReWriteRule ^(.*)$ silverstripe/$1 [L]
    # RewriteBase für Typo zurücksetzen
    RewriteBase /
    ### SILVERSTRIPE END ###

    ...danach andere bzw. typo rewrites...


    ############### .htaccess silverstripe Unterverzeichnis: ##############

    ### SILVERSTRIPE START ###
    <Files *.ss>
       Order deny,allow
       Deny from all
       Allow from 127.0.0.1
    </Files>

    <Files web.config>
       Order deny,allow
       Deny from all
    </Files>

    ErrorDocument 404 /assets/error-404.html
    ErrorDocument 500 /assets/error-500.html

    <IfModule mod_alias.c>
       RedirectMatch 403 /silverstripe-cache(/|$)
    </IfModule>

    <IfModule mod_rewrite.c>
       SetEnv HTTP_MOD_REWRITE On
       RewriteEngine On
       RewriteBase /

       RewriteCond %{REQUEST_URI} ^(.*)$
       RewriteCond %{REQUEST_FILENAME} !-f
       RewriteRule .* silverstripe/sapphire/main.php?url=%1&%{QUERY_STRING} [L]
    </IfModule>
    ### SILVERSTRIPE END ###


    ################ _config.php: ##################
    ...
    SiteTree::enable_nested_urls();
    Director::setBaseURL("/");
    ...

Zur Zeit online: Zur Zeit ist leider niemand online.

Wir begrüßen unsere neuen Mitglieder: saerdna