We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 47926
    • 5 Posts
    Greetings from Russia smiley

    I thought MODx Revo to be a good solution for my needs. So, I decided to use it and create a multilanguage website with Russian (basic) and English languages.

    So, I followed all the steps from this tutorial on YouTube: http://www.youtube.com/watch?v=fSa_CdinTUE, but it does not work for me. The problem is that, when I change the link from English to Russian or vice versa — the content is always the same.
    This is the link:
    http://s.zaf.su


    For Russian I have http://s.zaf.su/ and for English http://s.zaf.su/en/
    It is always Russian, both documents have different contents.

    And this is what I have in my .htaccess file:
    # 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
    


    How can I fix it? How should I be? Help me...

    My Skype ID: zafar_12
    Or VKontakte profile: http://vk.com/zafar

    Thanks.
      • 44195
      • 293 Posts
      Hi Zafarali,

      You'll need to do some rewrites in your .htaccess file.

      Have a look at: http://www.multilingual-modx.com/blog/2011/seo-friendly-multilingual-websites-with-modx-and-babel.html
        I'm lead developer at Digital Penguin Creative Studio in Hong Kong. https://www.digitalpenguin.hk
        Check out the MODX tutorial series on my blog at https://www.hkwebdeveloper.com
        • 28042 ☆ A M B ☆
        • 24,524 Posts
        When I was using contexts and Babel to handle multilanguage websites, I used this plugin (from the comments on the above link), which doesn't require any .htaccess changes. https://gist.github.com/gadamiak/3812853


        gadamiak • 2 years ago

        I wrote a router plugin, which handles subfolder setup without a need to modify url rewriting in the webserver. All routing is done in MODX itself. It handles client accepted languages.

        You can get it from GitHub: https://gist.github.com/381285...
          Studying MODX in the desert - http://sottwell.com
          Tips and Tricks from the MODX Forums and Slack Channels - http://modxcookbook.com
          Join the Slack Community - http://modx.org
          • 47926
          • 5 Posts
          Quote from: muzzstick at Jun 09, 2014, 11:09 PM
          Hi Zafarali,

          You'll need to do some rewrites in your .htaccess file.

          Have a look at: http://www.multilingual-modx.com/blog/2011/seo-friendly-multilingual-websites-with-modx-and-babel.html

          Yes, actually. I already did. This is what I do have now in my .htaccess and still doesn't work.

          # 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} !^s.zaf\.su [NC]
          RewriteRule (.*) http://s.zaf.su/$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]
          
          # redirect all requests to /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 /en/assets* to /assets*
          RewriteCond %{REQUEST_FILENAME} !-d
          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteRule ^(ru|en)/assets(.*)$ assets$2 [L,QSA]
            
          # redirect all other requests to /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


          P. S. Yesterday, I changed the code in .htacces and saved it. Today I see that the code is changed to how it was. Why happens so? Explain?
            • 44195
            • 293 Posts
            Hi Sottwell, thanks for the link to that plugin.. I'm going to see if it will somehow help me with the problem I'm having in my other thread.

            Hi zafarali, if you change:
            # The Friendly URLs part
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
            


            to
            # The Friendly URLs part
            #RewriteCond %{REQUEST_FILENAME} !-f
            #RewriteCond %{REQUEST_FILENAME} !-d
            #RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
            


            does it help?
              I'm lead developer at Digital Penguin Creative Studio in Hong Kong. https://www.digitalpenguin.hk
              Check out the MODX tutorial series on my blog at https://www.hkwebdeveloper.com
              • 47926
              • 5 Posts
              Quote from: muzzstick at Jun 09, 2014, 11:47 PM
              Hi Sottwell, thanks for the link to that plugin.. I'm going to see if it will somehow help me with the problem I'm having in my other thread.

              Hi zafarali, if you change:
              # The Friendly URLs part
              RewriteCond %{REQUEST_FILENAME} !-f
              RewriteCond %{REQUEST_FILENAME} !-d
              RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
              


              to
              # The Friendly URLs part
              #RewriteCond %{REQUEST_FILENAME} !-f
              #RewriteCond %{REQUEST_FILENAME} !-d
              #RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
              


              does it help?

              No, it doesn't work. The problem is actuay that it is the code in .htaccess changes itself to how it was. May be the problem is in web-server confguration.. I do not know. I am tired of thinking what happens.

              Can someone help me, pls!?

              Thx.
                • 44195
                • 293 Posts
                If your server is not recognising writing or is reverting to previous versions it sounds like you'll need to talk to your web host.
                  I'm lead developer at Digital Penguin Creative Studio in Hong Kong. https://www.digitalpenguin.hk
                  Check out the MODX tutorial series on my blog at https://www.hkwebdeveloper.com
                  • 47926
                  • 5 Posts
                  Quote from: muzzstick at Jun 09, 2014, 11:56 PM
                  If your server is not recognising writing or is reverting to previous versions it sounds like you'll need to talk to your web host.

                  What if it is changed by MODx?
                    • 47926
                    • 5 Posts
                    Quote from: muzzstick at Jun 09, 2014, 11:56 PM
                    If your server is not recognising writing or is reverting to previous versions it sounds like you'll need to talk to your web host.

                    Can you Skype me? Maybe I do smth wrong?