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

Answered broken link

    • 52938
    • 10 Posts
    Hi all,

    I have the problem, that when I click on the menue to get on a certain page that I end up on the index page of the website. It worked all the time and I have no idea what could have happened.

    http://snomo-medics.com.ua/ru/snomo from here to http://snomo-medics.com.ua/snomo/, I should see the page just in another language. Why the hell do I end up there? Any ideas? Working with MODX Revolution 2.4.3-pl
    Thanks for any hint,
    HS

    This question has been answered by bolingfrog. See the first response.

      • 28432
      • 372 Posts
      Hi, which extra are you using to manage your different languages ?
        • 52938
        • 10 Posts
        Quote from: Steeve at Oct 29, 2016, 09:19 AM
        Hi, which extra are you using to manage your different languages ?
        Plugins are Babel, CodeMirror and swithContext
          • 28432
          • 372 Posts
          Quote from: bolingfrog at Oct 29, 2016, 09:24 AM
          Quote from: Steeve at Oct 29, 2016, 09:19 AM
          Hi, which extra are you using to manage your different languages ?
          Plugins are Babel, CodeMirror and swithContext
          OK! Babel is your extra that manage your languages.

          Have you check your context config?
          Have you make the plugin named gateway?
          Have you check your .htaccess file ?
            • 52938
            • 10 Posts
            OK, as I see it, the context config seems to be ok. I have 2 snippets by the name BabelLinks and BabelTranslation. Please see the .htaccess:

            # 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} !^snomo-medics\.com.ua [NC]
            RewriteRule (.*) http://http://snomo-medics.com.ua/$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
            # redirect all requests to /ru/favicon.ico and /en/favicon.ico
            # to /favicon.ico
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(ru|en)/favicon.ico$ favicon.ico [L,QSA]
               
            # redirect all requests to /ru/assets* and /en/assets* to /assets*
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(ru|en)/assets(.*)$ assets$2 [L,QSA]
               
            # redirect all requests to /ru/upload* and /en/upload* to /upload*
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(ru|en)/upload(.*)$ upload$2 [L,QSA]
              
            # redirect all other requests to /ru/* and /en/*
            # to index.php and set the cultureKey parameter
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule ^(ru|en)?/?(.*)$ index.php?cultureKey=$1&q=$2 [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

              • 28432
              • 372 Posts
              The .htaccess file seems to be right. You tell me which snippet you have but normaly you have a PLUGIN (is not a Snippet or an Extra) named gateway! Find it please (under Snippet place) and show me ;-)
                • 52938
                • 10 Posts
                Quote from: Steeve at Oct 30, 2016, 03:44 AM
                The .htaccess file seems to be right. You tell me which snippet you have but normaly you have a PLUGIN (is not a Snippet or an Extra) named gateway! Find it please (under Snippet place) and show me ;-)

                Hello, that's how it looks like
                  • 28432
                  • 372 Posts
                  Quote from: bolingfrog at Oct 30, 2016, 04:04 AM
                  Quote from: Steeve at Oct 30, 2016, 03:44 AM
                  The .htaccess file seems to be right. You tell me which snippet you have but normaly you have a PLUGIN (is not a Snippet or an Extra) named gateway! Find it please (under Snippet place) and show me ;-)

                  Hello, that's how it looks like
                  Can you show switchContext?
                    • 52938
                    • 10 Posts
                    <?php
                    # OnHandleRequest
                    if($modx->context->get('key') != "mgr"){
                        /* grab the current langauge from the cultureKey request var */
                        switch ($_REQUEST['cultureKey']) {
                    	    case 'de':
                                /* switch the context */
                                $modx->switchContext('de');
                                break;
                            case 'ru':
                                /* switch the context */
                                $modx->switchContext('ru');
                                break;
                            case 'en':
                                /* switch the context */
                                $modx->switchContext('en');
                                break;
                            default:
                                /* Set the default context here */
                                $modx->switchContext('web');
                                break;
                        }
                        /* unset GET var to avoid
                         * appending cultureKey=xy to URLs by other components */
                        unset($_GET['cultureKey']);
                    }
                      • 28432
                      • 372 Posts
                      Quote from: bolingfrog at Oct 30, 2016, 04:09 AM
                      <!--?php
                      # OnHandleRequest
                      if($modx--->context->get('key') != "mgr"){
                          /* grab the current langauge from the cultureKey request var */
                          switch ($_REQUEST['cultureKey']) {
                      	    case 'de':
                                  /* switch the context */
                                  $modx->switchContext('de');
                                  break;
                              case 'ru':
                                  /* switch the context */
                                  $modx->switchContext('ru');
                                  break;
                              case 'en':
                                  /* switch the context */
                                  $modx->switchContext('en');
                                  break;
                              default:
                                  /* Set the default context here */
                                  $modx->switchContext('web');
                                  break;
                          }
                          /* unset GET var to avoid
                           * appending cultureKey=xy to URLs by other components */
                          unset($_GET['cultureKey']);
                      }

                      So you got 4 context DE, RU, EN and WEB.
                      Everything is right for me! I didn't see your context setting!
                      When did the problem appear ?