====== .htaccess File ====== This section tells about how you can tweak/configure the root ''.htaccess'' file. This file is only necessary if you are using [[:pretty_urls|PrettyURLs]], but can be of use in other ways. ===== Force no-www / www ===== GetSimple doesn't by default force a domain to use either www or no-www based on its SITEURL that is setup within the administrative panel. You can add this code to force it to never use www in your URL: RewriteCond %{HTTP_HOST} !^domain.com$ [NC] RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301] Conversely, if you’d prefer to use **www** in all of your URLs, you can use this: RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC] RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301] The code above should be included in your .htaccess file below the RewriteBase line, but before the **RewriteCond %{REQUEST_FILENAME} !-f** line. See [[http://get-simple.info/forum/topic/286/force-or-nowww-code-for-htaccess/|this forum post]] for more information. ===== Installing into subdir whilst keeping root relative Fancy URL's ===== To install GetSimple into a subdir of your webserver such as .../cms/ . You may complete the installation using standard procedures. Upon completion you will want to create or edit your existing .htaccess file in the root directory of your webserver to include the following RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d [OR] RewriteCond %{REQUEST_URI} =/ RewriteRule ^(.*)$ /cms/$1 [L] Of course, you must replace "cms" in the above sample with the directory you chose to install GetSimple into. This will allow you visitors to navigate to mydomain.com/contact-us rather than mydomain.com/cms/contact-us If you are editing an existing installation, be sure to change the website base URL in General Settings to reflect the new root url, so the navigation links are changed. ===== Optimization ===== In lieu of using a caching plugin to speed up your GetSimple based website, you can try adding this little piece of code to the bottom of your root level .htaccess file. It's been running on get-simple.info for months with absolutely no problems. # Enable GZIP AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # Expires Headers - 2678400s = 31 days ExpiresActive On ExpiresDefault "access plus 1 seconds" ExpiresByType text/html "access plus 7200 seconds" ExpiresByType image/gif "access plus 2678400 seconds" ExpiresByType image/jpeg "access plus 2678400 seconds" ExpiresByType image/png "access plus 2678400 seconds" ExpiresByType text/css "access plus 518400 seconds" ExpiresByType text/javascript "access plus 2678400 seconds" ExpiresByType application/x-javascript "access plus 2678400 seconds" # Cache Headers # Cache specified files for 31 days Header set Cache-Control "max-age=2678400, public" # Cache HTML files for a couple hours Header set Cache-Control "max-age=7200, private, must-revalidate" # Cache PDFs for a day Header set Cache-Control "max-age=86400, public" # Cache Javascripts for 31 days Header set Cache-Control "max-age=2678400, private" Thanks to [[http://daverupert.com/2010/06/web-performant-wordpress|Dave Rupert]] for the code that was originally created for WordPress. Depending on your setup you may need to add the following lines, to prevent caching of the admin pages, and the edited pages therein: ExpiresActive Off Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform" ===== .html instead of slash (/) ===== To have .html document ending (with mod_rewrite), instead of slash ("/"), please see these two forum post: - http://get-simple.info/forum/post/19253/#p19253 - http://get-simple.info/forum/post/7918/#p7918 ==== Details ==== First change the custom permalink-structure in the configuration / settings to: %slug%.html or %parent%/%slug%.html Second; edit your .htaccess-file: instead of RewriteRule /?([A-Za-z0-9_-]+)/?$ index.php?id=$1 [QSA,L] set this: RewriteRule ([A-Za-z0-9-]+).html index.php?id=$1 [QSA,L]