We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 50595
    • 32 Posts
    Hi experts

    Currently I'm trying to configure my MODx installation for multiple domains. In order to do this I've created two additional contexts including domain specific variables (see example image).
    I also created a plugin called gateway (OnHandleRequest):

    <?php
    #System Events: OnHandleRequest!
     
    if ($modx->context->get('key') == 'mgr') {return;}
     
    #switch(strtolower(MODX_HTTP_HOST))  {
    switch($modx->getOption('http_host')) {
    case 'modx.47nord.io:80':
    case 'modx.47nord.io':
    $modx->switchContext('web');
    break;
     
    case 'www.kastenmensch.ch:80':
    case 'www.kastenmensch.ch':
    $modx->switchContext('kastenmensch');
    break;
     
    case 'www.25frames.ch:80':
    case 'www.25frames.ch':
    $modx->switchContext('frames');
    break;
     
    default:
    $modx->switchContext('web');
    break;
    }


    After double-checking all settings and clearing caches multiple times, the value of MODX_HTTP_HOST or $modx->getOption('http_host') don't change a all. So the plugin calls 'web' all time.

    Can you help me on this?

    Best regards

    Ralph [ed. note: ralphbolliger last edited this post 8 years, 6 months ago.]
      • 42562
      • 1,145 Posts
      I have multiple domains running on respective contexts.
      I have never had the need to use a plugin or extra to take care of my setup. hmmm
        TinymceWrapper: Complete back/frontend content solution.
        Harden your MODX site by passwording your three main folders: core, manager, connectors and renaming your assets (thank me later!)
        5 ways to sniff / hack your own sites; even with renamed/hidden folders, burst them all up, to see how secure you are not.
        • 50595
        • 32 Posts
        Quote from: donshakespeare at Oct 22, 2015, 08:10 PM
        I have multiple domains running on respective contexts.
        I have never had the need to use a plugin or extra to take care of my setup. hmmm

        Can you explain how you set up your MODx instance?
        Basically I followed the instructions over here: http://www.h-quadrat.com/techblog/111-modx-revolution-multi-domain-context-installation-english.php
          • 3749
          • 24,544 Posts
          Do you have Friendly URLs turned on? The .htaccess file may be rewriting them all to the same host.
            Did I help you? Buy me a beer
            Get my Book: MODX:The Official Guide
            MODX info for everyone: http://bobsguides.com/modx.html
            My MODX Extras
            Bob's Guides is now hosted at A2 MODX Hosting
            • 50595
            • 32 Posts
            Hi

            Yes, the friendly_url setting is turned on. I renamed the ht.access file to .htaccess but I didn't alter it.

            # MODX supports Friendly URLs via this .htaccess file. You must serve web
            # pages via Apache with mod_rewrite to use this functionality, and you must
            # change the file name from ht.access to .htaccess.
            #
            # Make sure RewriteBase points to the directory where you installed MODX.
            # E.g., "/modx" if your installation is in a "modx" subdirectory.
            #
            # You may choose to make your URLs non-case-sensitive by adding a NC directive
            # to your rule: RewriteRule ^(.*)$ index.php?q=$1 [L,QSA,NC]
            
            RewriteEngine On
            RewriteBase /
            
            
            
            # Rewrite www.domain.com -> domain.com -- used with SEO Strict URLs plugin
            #RewriteCond %{HTTP_HOST} .
            #RewriteCond %{HTTP_HOST} !^example-domain-please-change\.com [NC]
            #RewriteRule (.*) http://example-domain-please-change.com/$1 [R=301,L]
            #
            # or for the opposite domain.com -> www.domain.com use the following
            # DO NOT USE BOTH
            #
            #RewriteCond %{HTTP_HOST} .
            #RewriteCond %{HTTP_HOST} !^www\.example-domain-please-change\.com [NC]
            #RewriteRule (.*) http://www.example-domain-please-change.com/$1 [R=301,L]
            
            
            
            # Rewrite secure requests properly to prevent SSL cert warnings, e.g. prevent 
            # https://www.domain.com when your cert only allows https://secure.domain.com
            #RewriteCond %{SERVER_PORT} !^443
            #RewriteRule (.*) https://example-domain-please-change.com/$1 [R=301,L]
            
            
            
            # The Friendly URLs part
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
            
            
            
            # Make sure .htc files are served with the proper MIME type, which is critical
            # for XP SP2. Un-comment if your host allows htaccess MIME type overrides.
            
            #AddType text/x-component .htc
            
            
            
            # If your server is not already configured as such, the following directive
            # should be uncommented in order to set PHP's register_globals option to OFF.
            # This closes a major security hole that is abused by most XSS (cross-site
            # scripting) attacks. For more information: http://php.net/register_globals
            #
            # To verify that this option has been set to OFF, open the Manager and choose
            # Reports -> System Info and then click the phpinfo() link. Do a Find on Page
            # for "register_globals". The Local Value should be OFF. If the Master Value
            # is OFF then you do not need this directive here.
            #
            # IF REGISTER_GLOBALS DIRECTIVE CAUSES 500 INTERNAL SERVER ERRORS :
            #
            # Your server does not allow PHP directives to be set via .htaccess. In that
            # case you must make this change in your php.ini file instead. If you are
            # using a commercial web host, contact the administrators for assistance in
            # doing this. Not all servers allow local php.ini files, and they should
            # include all PHP configurations (not just this one), or you will effectively
            # reset everything to PHP defaults. Consult www.php.net for more detailed
            # information about setting PHP directives.
            
            #php_flag register_globals Off
            
            
            
            # For servers that support output compression, you should pick up a bit of
            # speed by un-commenting the following lines.
            
            #php_flag zlib.output_compression On
            #php_value zlib.output_compression_level 5
            
            
            
            # The following directives stop screen flicker in IE on CSS rollovers. If
            # needed, un-comment the following rules. When they're in place, you may have
            # to do a force-refresh in order to see changes in your designs.
            
            #ExpiresActive On
            #ExpiresByType image/gif A2592000
            #ExpiresByType image/jpeg A2592000
            #ExpiresByType image/png A2592000
            #BrowserMatch "MSIE" brokenvary=1
            #BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1
            #BrowserMatch "Opera" !brokenvary
            #SetEnvIf brokenvary 1 force-no-vary
            
              • 3749
              • 24,544 Posts
              Make sure that you have this in the head section of all templates (the exclamation point is important):

              <base href="[[!++site_url]]" />


              Then make sure that you have a site_url Context setting containing the URL for that context (create one if not).
                Did I help you? Buy me a beer
                Get my Book: MODX:The Official Guide
                MODX info for everyone: http://bobsguides.com/modx.html
                My MODX Extras
                Bob's Guides is now hosted at A2 MODX Hosting
                • 50595
                • 32 Posts
                Hi BobRay

                Quote from: BobRay at Oct 29, 2015, 04:11 PM
                Make sure that you have this in the head section of all templates (the exclamation point is important):

                <base href="[[!++site_url]]">


                Then make sure that you have a site_url Context setting containing the URL for that context (create one if not).

                I changed the template and double checked that every context has it own site_url and http_host value (see attachments). But as you may see at http://www.kastenmensch.ch/kastenmensch/blabla.html, nothing changed.

                Greetings

                Ralph
                  • 4172
                  • 5,888 Posts
                  try
                  https://github.com/chsmedien/XRouting

                  this is, what I allways use without having issues.
                    -------------------------------

                    you can buy me a beer, if you like MIGX

                    http://webcmsolutions.de/migx.html

                    Thanks!
                    • 4172
                    • 5,888 Posts
                    get an 404, seems the page with your url doesn't exist.
                      -------------------------------

                      you can buy me a beer, if you like MIGX

                      http://webcmsolutions.de/migx.html

                      Thanks!