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

    I turned on Friendly URLs, and edited the .htaccess file, and all the pages work fine except the containers and the children of containers. What did I do wrong?

    Here's the link ... http://www.chotomarina.com/houseboats/
    ... (some of the styles are loading because they are on the page)

    Thanks.

    Dan
      • 42046
      • 436 Posts
      I think you might have the path wrong. For example this image url:

      http://www.chotomarina.com/houseboats/assets/images/houseboats/75-Bigfoot-Houseboat-Media-5-800x600.jpg


      Works when it's:

      http://www.chotomarina.com/assets/images/houseboats/75-Bigfoot-Houseboat-Media-5-800x600.jpg


      You've got an extra houseboats/ that's messing it up.

      Check your .htaccess and core/config paths.
        • 22427
        • 793 Posts
        Check your System settings: Filter for friendly urls and set the key "use_alias_path" to Yes. But observe the remarks to this option.
          • 6491
          • 70 Posts
          Thank you both but not enough information.

          I checked the .htaccess and the /core/config.inc.php files but don't see anything that stands out as wrong.
            • 42046
            • 436 Posts
            Could you post your htaccess and core/config so people could actually look at it? It's hard to diagnose the problem without being able to see your configuration. [ed. note: absent42 last edited this post 12 years, 2 months ago.]
              • 6491
              • 70 Posts
              Here is 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} !^chotomarina\.com [NC]
              RewriteRule (.*) http://chotomarina.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
              
                • 18373 ☆ A M B ☆
                • 3,141 Posts
                Because with friendly url paths you create folders that don't really exist, you need to make sure to point to your assets (css, js etc) with an absolute link, OR tell the browser what the relative base is.

                So refer to the assets with an absolute link, simply put a slash in front of them. For example:
                <link href="assets/css/boilerplate.css" rel="stylesheet" type="text/css">

                should be
                <link href="/assets/css/boilerplate.css" rel="stylesheet" type="text/css">


                The other option is to set a <base> tag in the head. It's simply this:
                <base href="[[!++site_url]]">

                and tells the browser that all relative links should be relative from your site's root.

                To figure out this problem, simply go to your page (e.g. http://www.chotomarina.com/rentals/houseboats/) and open your browser developer tools. On the Net(work) or Console tab you'll see it is getting 404 errors for the assets, which is why your site doesn't work.
                  Mark Hamstra • Developer spending his days working on Premium Extras and a MODX Site Dashboard with the ability to remotely upgrade MODX and extras to make the MODX world a little better.

                  Tweet me @mark_hamstra, check my infrequent blog at markhamstra.com, my slightly more frequent ramblings at MODX.today or see code at Github.
                  • 6491
                  • 70 Posts
                  Thank you for the help, Mark Hamstra. That did the trick.

                  I used the code ... <base href="[[++site_url]]" /> ... in the head.