Jump to content


Photo
* * * * * 1 votes

For those with issues, Few Tips


13 replies to this topic

#1 Jacob Bowen

Jacob Bowen

    Advanced Member

  • Members
  • PipPipPip
  • 37 posts
  • LocationTempe, Arizona

Posted 31 July 2013 - 08:37 PM

Hello People, So surfing thru the forums on alot of different sites that pertain to opencart, and even here on the openshop forum. I've noticed that people have alot of failings due to common things they did not due.

Remember, Always Delete your VqCache when adding/updating vqmods

Always keep your Cache folder clean (Located at /system/cache/)

Always Do backups, and with that do not use the built in backup/restore system in opencart as it CAN NOT HANDLE large databases(Mines roughly 40MB, couldn't use the backup once my DB became around 10-15MB)

When testing new Mods/Extentions, always use a test site, even if its http://www.stupiddomainname.com/Test , it doesn't have to be a subdomain.


With those things said, Here are a few files of use you guys might like:

 

A opencart Optimized .htaccess

<IfModule pagespeed_module>
	ModPagespeed off
	ModPagespeedEnableFilters move_css_above_scripts,move_css_to_head,rewrite_style_attributes,flatten_css_imports,make_google_analytics_async,combine_javascript,local_storage_cache
	ModPagespeedEnableFilters convert_jpeg_to_progressive,inline_preview_images,resize_mobile_images,remove_comments,collapse_whitespace,sprite_images,lazyload_images
	#ModPagespeedDisableFilters combine_css
</IfModule>

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin: "*"
	BrowserMatch MSIE ie
	Header set X-UA-Compatible "IE=Edge,chrome=1"
    # mod_headers can't match by content-type, but we don't want to send this header on *everything*...
    <FilesMatch "\.(js|css|gif|png|jpe?g|pdf|xml|oga|ogg|m4a|ogv|mp4|m4v|webm|svg|svgz|eot|ttf|otf|woff|ico|webp|appcache|manifest|htc|crx|xpi|safariextz|vcf)$" >
      Header unset X-UA-Compatible
    </FilesMatch>
</IfModule>

<FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css)$">
  <IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
  </IfModule>
</FilesMatch>

AddType application/javascript         	js
AddType audio/ogg                      	oga ogg
AddType audio/mp4                      	m4a
AddType video/ogg                      	ogv
AddType video/mp4                      	mp4 m4v
AddType video/webm                     	webm
AddType image/svg+xml              		svg svgz 
AddEncoding gzip                       	svgz                      
AddType application/vnd.ms-fontobject  	eot
AddType application/x-font-ttf    		ttf ttc
AddType font/opentype                  	otf
AddType application/x-font-woff        	woff                                      
AddType image/x-icon                   	.ico
AddType image/webp                     	webp
AddType text/cache-manifest            	appcache manifest
AddType text/x-component               	htc
AddType application/x-chrome-extension 	crx
AddType application/x-xpinstall        	xpi
AddType application/octet-stream       	safariextz
AddType text/x-vcard                   	vcf


<FilesMatch "\.combined\.js$">
  Options +Includes
  AddOutputFilterByType INCLUDES application/javascript application/json
  SetOutputFilter INCLUDES
</FilesMatch>
<FilesMatch "\.combined\.css$">
  Options +Includes
  AddOutputFilterByType INCLUDES text/css
  SetOutputFilter INCLUDES
</FilesMatch>

<IfModule mod_deflate.c>

<IfModule mod_setenvif.c>
  <IfModule mod_headers.c>
    SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
    RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
  </IfModule>
</IfModule>

<IfModule filter_module>
  FilterDeclare   COMPRESS
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/html
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/css
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/plain
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/xml
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/x-component
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/javascript
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/json
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/xml
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/xhtml+xml
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/rss+xml
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/atom+xml
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/vnd.ms-fontobject
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $image/svg+xml
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/x-font-ttf
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $font/opentype
  FilterChain     COMPRESS
  FilterProtocol  COMPRESS  DEFLATE change=yes;byteranges=no
</IfModule>

<IfModule !mod_filter.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
  AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
  AddOutputFilterByType DEFLATE image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
</IfModule>
</IfModule>

<IfModule mod_expires.c>
  ExpiresActive on

  ExpiresDefault                          		"access plus 1 month"
  ExpiresByType text/cache-manifest       		"access plus 0 seconds"
  ExpiresByType text/html                 		"access plus 0 seconds"
  ExpiresByType text/xml                  		"access plus 0 seconds"
  ExpiresByType application/xml           		"access plus 0 seconds"
  ExpiresByType application/json          		"access plus 0 seconds"
  ExpiresByType application/rss+xml       		"access plus 1 hour"
  ExpiresByType application/atom+xml      		"access plus 1 hour"
  ExpiresByType image/x-icon          	  		"access plus 1 month" 
  ExpiresByType image/gif                 		"access plus 1 month"
  ExpiresByType image/png                 		"access plus 1 month"
  ExpiresByType image/jpg                 		"access plus 1 month"
  ExpiresByType image/jpeg                		"access plus 1 month"
  ExpiresByType video/ogg                 		"access plus 1 month"
  ExpiresByType audio/ogg                 		"access plus 1 month"
  ExpiresByType video/mp4                 		"access plus 1 month"
  ExpiresByType video/webm                		"access plus 1 month"
  ExpiresByType text/x-component          		"access plus 1 month"
  ExpiresByType font/truetype             		"access plus 1 month"
  ExpiresByType font/opentype             		"access plus 1 month"
  ExpiresByType application/x-font-woff   		"access plus 1 month"
  ExpiresByType image/svg+xml             		"access plus 1 month"
  ExpiresByType application/vnd.ms-fontobject 	"access plus 1 month"
  ExpiresByType text/css                  		"access plus 1 year"
  ExpiresByType application/javascript    		"access plus 1 year"
  
  <IfModule mod_headers.c>
    Header append Cache-Control "public"
  </IfModule>
  
</IfModule>

<IfModule mod_headers.c>
  Header unset ETag
</IfModule>

FileETag None

BrowserMatch "MSIE" brokenvary=1
BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1
BrowserMatch "Opera" !brokenvary
SetEnvIf brokenvary 1 force-no-vary

 <IfModule mod_rewrite.c>
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ $1.$3 [L]
 </IfModule>
 
Options +FollowSymlinks
Options -Indexes

<FilesMatch "\.(tpl|ini|log)">
 Order deny,allow
 Deny from all
</FilesMatch>

RewriteEngine On

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

Do you have ALOT of Items in your OC site? Is it running Very slow(4+ seconds to load)

More then likely this is due to OC's shitty handling of queries for product counts, Try these fix's:

 

If you are running 1.5.5.1 Try this Vqmod script (Just copy/paste into a file in your XML file such as making a file called say "Prodcutfix.xml"

    <!-- Created using vQmod XML Generator by UKSB - http://uksb.github.com/vqgen/ //-->
    <modification>
    <id><![CDATA[Fast Category Product Count Mod]]></id>
    <version><![CDATA[002]]></version>
    <vqmver><![CDATA[2.3.2]]></vqmver>
    <author><![CDATA[midgette ([email protected])]]></author>
    <file path="admin/model/catalog/" name="product.php">
    <operation info="Update category table whenever products are added to product_to_category table.">
    <search position="after" offset="1" index="1"><![CDATA[$this->db->query("INSERT INTO " . DB_PREFIX . "product_to_category SET product_id = '" . (int)$product_id . "', category_id = '" . (int)$category_id . "'");]]></search>
    <add><![CDATA[ $this->updateCategory();]]></add>
    </operation>
    <operation info="Update category table whenever products are updated in product_to_category table.">
    <search position="after" offset="2" index="2"><![CDATA[$this->db->query("INSERT INTO " . DB_PREFIX . "product_to_category SET product_id = '" . (int)$product_id . "', category_id = '" . (int)$category_id . "'");]]></search>
    <add><![CDATA[ $this->updateCategory();]]></add>
    </operation>
    <operation info="Update category table whenever products are deleted from product_to_category table.">
    <search position="after" index="3"><![CDATA[$this->cache->delete('product');]]></search>
    <add><![CDATA[ $this->updateCategory();
    }
    public function updateCategory() {
    $query = $this->db->query("SELECT COUNT(*) as 'haveqty' FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '" . DB_PREFIX . "category' AND COLUMN_NAME = 'qty'");
    if (empty($query->row['haveqty'])) {
    $this->db->query("ALTER TABLE " . DB_PREFIX . "category ADD COLUMN qty INT(11) DEFAULT 0 AFTER `status`");
    }
    $this->db->query("UPDATE " . DB_PREFIX . "category SET qty = (SELECT COUNT(*) FROM " . DB_PREFIX . "product_to_category WHERE category_id = " . DB_PREFIX . "category.category_id)");
    $this->cache->delete('category');]]></add>
    </operation>
    </file>
    <file path="admin/controller/setting/" name="setting.php">
    <operation>
    <search position="after" offset="5" index="1"><![CDATA[if (isset($this->request->post['config_product_count'])) {]]></search>
    <add><![CDATA[ $query = $this->db->query("SELECT COUNT(*) as 'haveqty' FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '" . DB_PREFIX . "category' AND COLUMN_NAME = 'qty'");
    if (empty($query->row['haveqty'])) {
    $this->db->query("ALTER TABLE " . DB_PREFIX . "category ADD COLUMN qty INT(11) DEFAULT 0 AFTER `status`");
    $this->db->query("UPDATE " . DB_PREFIX . "category SET qty = (SELECT COUNT(*) FROM " . DB_PREFIX . "product_to_category WHERE category_id = " . DB_PREFIX . "category.category_id)");
    $this->cache->delete('category');
    }
    ]]></add>
    </operation>
    </file>	
    <file path="catalog/controller/common/" name="header.php">
    <operation>
    <search position="replace" index="1"><![CDATA[$product_total = $this->model_catalog_product->getTotalProducts($data);]]></search>
    <add><![CDATA[//$product_total = $this->model_catalog_product->getTotalProducts($data);]]></add>
    </operation>
    <operation>
    <search position="replace" index="1"><![CDATA['name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),]]></search>
    <add><![CDATA['name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $child['qty'] . ')' : ''),]]></add>
    </operation>
    </file>
    <file path="catalog/controller/module/" name="category.php">
    <operation>
    <search position="replace" index="1"><![CDATA[$total = $this->model_catalog_product->getTotalProducts(array('filter_category_id' => $category['category_id']));]]></search>
    <add><![CDATA[//$total = $this->model_catalog_product->getTotalProducts(array('filter_category_id' => $category['category_id']));]]></add>
    </operation>
    <operation>
    <search position="replace" index="1"><![CDATA[$product_total = $this->model_catalog_product->getTotalProducts($data);]]></search>
    <add><![CDATA[//$product_total = $this->model_catalog_product->getTotalProducts($data);]]></add>
    </operation>
    <operation>
    <search position="replace" index="1"><![CDATA[$total += $product_total;]]></search>
    <add><![CDATA[//$total += $product_total;]]></add>
    </operation>
    <operation>
    <search position="replace" index="1"><![CDATA['name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),]]></search>
    <add><![CDATA['name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $child['qty'] . ')' : ''),]]></add>
    </operation>
    <operation>
    <search position="replace" index="1"><![CDATA['name' => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $total . ')' : ''),]]></search>
    <add><![CDATA['name' => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $category['qty'] . ')' : ''),]]></add>
    </operation>
    </file>
    <file path="catalog/controller/product/" name="category.php">
    <operation>
    <search position="replace" index="1"><![CDATA[$product_total = $this->model_catalog_product->getTotalProducts($data);]]></search>
    <add><![CDATA[//$product_total = $this->model_catalog_product->getTotalProducts($data);]]></add>
    </operation>
    <operation>
    <search position="replace" index="1"><![CDATA['name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),]]></search>
    <add><![CDATA['name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $result['qty'] . ')' : ''),]]></add>
    </operation>
    </file>
    </modification>

Or if you are running the new 1.5.6 Try this:

 

Open /catalog/controller/module/category.php and find this:

					'name'        => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),

Replace it with:

					'name'        => $child['name'] . ($this->config->get('config_product_count') ? : ''),

Also Find:

				'name'        => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $total . ')' : ''),

Then replace with:

				'name'        => $category['name'] . ($this->config->get('config_product_count') ? : ''),

Then open /catalog/controller/common/header.php

 

Find line:

						'name'  => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),

Replace with:

						'name'  => $child['name'] . ($this->config->get('config_product_count') ? : ''),

The above fix for 1.5.6 Is a hack and slash fix, USE AT YOUR OWN RISK, as there is not a VQmod made yet for 1.5.6 that works,.

 

 

 

 

 

 

 

 

Well those are a few things, I'll add more little tid bits here and there and fix this up a bit, If MaxD wants to sticky this i'll make sure its updated so that people can have some go to place for small fix's.


  • 2

Follow my Shenanigans on Twitter

@scarecr0w12


#2 MaxD

MaxD

    Administrator

  • Administrators
  • 734 posts

Posted 31 July 2013 - 08:53 PM

Jacob, thats nice info peace! I move to OpenCart section and stick.


  • 0

#3 cabachona

cabachona

    Newbie

  • Members
  • Pip
  • 5 posts

Posted 19 August 2013 - 03:26 AM

I have followed these instructions above, though still cannot get openshop to work on my website. 

That is the frontend shows an error all the time..Fatal error: Call to a member function hasPermission() on a non-object in /home/akidnaco/public_html/vqmod/vqcache/vq2-system_engine_action.php on line 23

It does not matter which theme I use. I have cleaned the cache and done everything else I can think of.

It is driving me mad cos I am working on a client's site and had wowed her over and told her I can change the theme colours and all..now she is very disappointed in me.

What could be causing this condition to come up please?


  • 0

#4 MaxD

MaxD

    Administrator

  • Administrators
  • 734 posts

Posted 19 August 2013 - 08:37 AM

That is the frontend shows an error all the time..Fatal error: Call to a member function hasPermission() on a non-object in /home/akidnaco/public_html/vqmod/vqcache/vq2-system_engine_action.php on line 23

PM me admin log/pass and I will take a look.


  • 0

#5 Jacob Bowen

Jacob Bowen

    Advanced Member

  • Members
  • PipPipPip
  • 37 posts
  • LocationTempe, Arizona

Posted 19 August 2013 - 03:07 PM

Well my question would be, What are you doing directly before this error comes up, What version are you using in OC and OS, and what mods do you have installed.


  • 0

Follow my Shenanigans on Twitter

@scarecr0w12


#6 cabachona

cabachona

    Newbie

  • Members
  • Pip
  • 5 posts

Posted 20 August 2013 - 02:58 AM

PM me admin log/pass and I will take a look.

Thanks Max. I sent my details to you.



Well my question would be, What are you doing directly before this error comes up, What version are you using in OC and OS, and what mods do you have installed.

Hi Jacob,

 

Well, I have the very latest opencart and I installed the latest openshop 16, then uninstalled that and reinstalled the 16a. I had not installed any other apps in the beginning, though I have some different themes loaded after the problem continued. I figured if I could not have the openshop, I would see what some of the other themes would look like. I also have since installed an image manager as somehow the one that came with opencart did not work when I wanted to link to an image under "image" of the product. Yet it linked fine on the "data" page. 

 

Anyway, so far I still get the problem front end even if I disable everything I installed and only enable openshop, which defeats the purpose. 


  • 0

#7 Guest (guest)

Guest (guest)
  • Guests

Posted 20 August 2013 - 03:53 AM

Uninstall all of it, install 1.5.5.1, then OS 1.6a . The newest OC is horrid at best and needs to not be used until they atlest come out with the 1.5.6.1 to fix all the horrible things they caused.


  • 0

#8 Jacob Bowen

Jacob Bowen

    Advanced Member

  • Members
  • PipPipPip
  • 37 posts
  • LocationTempe, Arizona

Posted 20 August 2013 - 03:55 AM

Post above is me BTW, i forgot to login XD


  • 0

Follow my Shenanigans on Twitter

@scarecr0w12


#9 Guest (guest)

Guest (guest)
  • Guests

Posted 20 August 2013 - 04:15 AM

Uninstall all of it, install 1.5.5.1, then OS 1.6a . The newest OC is horrid at best and needs to not be used until they atlest come out with the 1.5.6.1 to fix all the horrible things they caused.

Ok Jacob, I will take on board what you have said. I will wait though til I  hear from Max and see what he says.

I have my own website which is using the later oc version with the older os 15 version and is working just fine. So it is really quite weird.

I may have to do this though as it is really frustrating as one website looks great and the other not so good at all, lol


  • 0

#10 cabachona

cabachona

    Newbie

  • Members
  • Pip
  • 5 posts

Posted 20 August 2013 - 04:16 AM

Yeah, just realised I wasn't logged in then either.  :D


  • 0

#11 Ernst Jakob

Ernst Jakob

    Advanced Member

  • Members
  • PipPipPip
  • 35 posts
  • LocationSwitzerland

Posted 29 June 2014 - 03:31 AM

I compared my .htaccess File with the One described above, in real action. I was surprised, the .htaccess file shown below makes my Openshop much faster, compared with the obe above.

# Rabbit Rabbit Security Upgrade
Options +SymLinksIfOwnerMatch

Header unset ETag
FileETag None

# Prevent Directory listing 
Options -Indexes

# Prevent Direct Access to files
<FilesMatch "\.(tpl|ini|log)">
 Order deny,allow
 Deny from all
</FilesMatch>

# SEO URL Settings
RewriteEngine On
RewriteBase /shop/

# If using subdirectory, update RewriteBase /
# Store URL: ipc.li/shop
# Update to: RewriteBase /shop/

RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^download/(.*) /index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

# compress text, HTML, JavaScript, CSS, and XML
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

# remove browser bugs
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent

### Additional Settings that may need to be enabled for some servers 
### Uncomment the commands by removing the # sign in front of it.
### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.

# 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
# php_flag register_globals off

# 2. If your cart has magic quotes enabled, This may work to disable it:
# php_flag magic_quotes_gpc Off

# 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
# php_value upload_max_filesize 999M

# 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value post_max_size 999M

# 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_execution_time 200

# 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_input_time 200

# 7. disable open_basedir limitations
# php_admin_value open_basedir none
# END OpenCart


<IfModule pagespeed_module>
 ModPagespeed on
 # using commands,filters etc
</IfModule>

# Leverage Browser Caching
<IfModule mod_expires.c>
 ExpiresActive On
 ExpiresByType image/jpg "access plus 1 week"
 ExpiresByType image/jpeg "access plus 1 week"
 ExpiresByType image/gif "access plus 1 week"
 ExpiresByType image/png "access plus 1 week"
 ExpiresByType text/css "access plus 1 week"
 ExpiresByType application/pdf "access plus 1 week"
 ExpiresByType text/x-javascript "access plus 1 week"
 ExpiresByType application/x-shockwave-flash "access plus 1 week"
 ExpiresByType image/x-icon "access plus 1 week"
 ExpiresDefault "access plus 1 week"
</IfModule>
Ideally combined, they could probably do much good, but, for the
time, I keep mine, found somewhere on the web...

best regards,

Ernie, OpenShop Fan
  • 0

#12 Guest (guest)

Guest (guest)
  • Guests

Posted 22 July 2014 - 05:32 AM

I compared my .htaccess File with the One described above, in real action. I was surprised, the .htaccess file shown below makes my Openshop much faster, compared with the obe above.
 

# Rabbit Rabbit Security Upgrade
Options +SymLinksIfOwnerMatch

Header unset ETag
FileETag None

# Prevent Directory listing 
Options -Indexes

# Prevent Direct Access to files
<FilesMatch "\.(tpl|ini|log)">
 Order deny,allow
 Deny from all
</FilesMatch>

# SEO URL Settings
RewriteEngine On
RewriteBase /shop/

# If using subdirectory, update RewriteBase /
# Store URL: ipc.li/shop
# Update to: RewriteBase /shop/

RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^download/(.*) /index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

# compress text, HTML, JavaScript, CSS, and XML
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

# remove browser bugs
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent

### Additional Settings that may need to be enabled for some servers 
### Uncomment the commands by removing the # sign in front of it.
### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.

# 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
# php_flag register_globals off

# 2. If your cart has magic quotes enabled, This may work to disable it:
# php_flag magic_quotes_gpc Off

# 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
# php_value upload_max_filesize 999M

# 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value post_max_size 999M

# 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_execution_time 200

# 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_input_time 200

# 7. disable open_basedir limitations
# php_admin_value open_basedir none
# END OpenCart


<IfModule pagespeed_module>
 ModPagespeed on
 # using commands,filters etc
</IfModule>

# Leverage Browser Caching
<IfModule mod_expires.c>
 ExpiresActive On
 ExpiresByType image/jpg "access plus 1 week"
 ExpiresByType image/jpeg "access plus 1 week"
 ExpiresByType image/gif "access plus 1 week"
 ExpiresByType image/png "access plus 1 week"
 ExpiresByType text/css "access plus 1 week"
 ExpiresByType application/pdf "access plus 1 week"
 ExpiresByType text/x-javascript "access plus 1 week"
 ExpiresByType application/x-shockwave-flash "access plus 1 week"
 ExpiresByType image/x-icon "access plus 1 week"
 ExpiresDefault "access plus 1 week"
</IfModule>
Ideally combined, they could probably do much good, but, for the
time, I keep mine, found somewhere on the web...

best regards,

Ernie, OpenShop Fan

 

This one worked wonders for me. It went from53 on Google Page Speed Test to 83. Thanks greatly.


  • 0

#13 Ernst Jakob

Ernst Jakob

    Advanced Member

  • Members
  • PipPipPip
  • 35 posts
  • LocationSwitzerland

Posted 22 July 2014 - 11:15 AM

I have been doing some extended Testing by use of 4 different Shops.

If someone has a lot of products to offer, this Post here could be of importance,

unlocking the OS/OC Brakes. It's all done by free available Mod's:

 

http://forum.opencar...t=39031#p507734

 

Ernie


  • 0

#14 wq123

wq123

    Advanced Member

  • Members
  • PipPipPip
  • 140 posts

Posted 15 July 2017 - 06:32 AM

Traditional coach factory online contenders north face Brazil, oakley sunglasses outlet Greece and Turkey ray ban drew the lacoste outlet online other prada three michael kors outlet online spots hermes bags to complete kevin durant jersey the ralph lauren 24-team field converse for this burberry outlet store summers kate spade outlet online tournament in jordan jerseys Spain, oakley sunglasses outlet basketball governing ray ban body levi's jeans FIBA announced converse Saturday coach outlet canada at san antonio spurs jersey its meeting in Barcelona. tommy hilfiger Ken Griffey Jr. was the top polo ralph lauren outlet pick in the 1987 oakley MLB kids hoodies draft. roshe run Then nfl jerseys he went ralph lauren factory store on to have cheap jerseys an illustrious nike air max 22-year career. chi flat iron Now, not only golden state warriors jerseys is wedding dresses he atlanta hawks jersey a Hall bears nfl jersey of Fame inductee, nike shoes outlet but hes adidas canada also swarovski the cover hermes birkin bag athlete for the video giuseppe shoes game MLB dsquared2 jeans The ferragamo shoes Show 17, burberry outlet which hits nike roche run stores on March nike air force 28, marc jacobs 2017.The Kid armani shoes outlet will patriots nfl jersey be cheap true religion the first retired player to grace the cover raptors jersey of The Show. Fans will hilfiger outlet have mcm bags the orlando magic jersey opportunity cowboys nfl jersey to burberry sale play oakley sunglasses outlet with him coach store outlet in boston celtics the game, michael kors outlet as new balance hell dolphins nfl jersey be considered coach bags a baseball bats playable rams nfl jersey living legend.Griffey was ray-ban sunglasses arguably cheap oakley one trail blazers jersey of texans nfl jersey the ralph lauren best outfielders of all time philipp plein clothing and ray ban outlet did soccer shoes it with ravens nfl jersey unprecedented swagger. He was michael kors outlet also a north face backpacks power converse sneakers hitter, finishing his nike air huarache caareer with giants nfl jersey 630 adidas outlet home louboutin runs -- which coach factory outlet now converse shoes ranks sixth in MLB history Traditional omega contenders nike canada Brazil, Greece and eyeglasses stores Turkey drew the lunette oakley other valentino three cavaliers jerseys spots to michael kors bags complete jaguars nfl jersey the 24-team cheap oakley sunglasses field hilfiger outlet for north face jackets this oakley black friday summers oakley sunglasses tournament in Spain, michael kors basketball governing body FIBA knicks jersey announced Saturday beats audio at its air max one meeting air max in hollister kids Barcelona. Ken new balance shoes Griffey supra shoes Jr. ralph lauren uk was the top the north face pick michael kors purses in the 1987 prada shoes MLB cheap glasses draft. christian louboutin Then michael kors he coach handbags outlet went on burberry sale to north face have an illustrious 22-year coach outlet sale career. Now, burberry handbags not ralph lauren outlet online only coach black friday is denver nuggets jersey he vans a Hall watches canada of hugo boss clothes Fame swarovski jewelry inductee, tommy hilfiger but hes also burberry sale the nike mercurial cover indoor soccer shoes athlete for babyliss pro the horloges video game MLB nike mercurial The Show 17, which oakley sunglasses hits oakley stores on louboutin outlet March cheap nhl jerseys 28, 2017.The lunette ray ban Kid pandora will kobe bryant jerseys be the air jordan shoes first longchamp retired ray ban sonnenbrillen player burberry to ray ban sunglasses grace the omega watches cover of The nike Show. hilfiger online shop Fans 49ers nfl jersey will have the opportunity to play with him titans nfl jersey in michael kors handbags the game, polo ralph lauren as hell chargers nfl jersey be fendi bags considered pandora charms a nike free run playable living legend.Griffey swarovski online was burberry handbags arguably juicy couture one mont blanc of the nike best outfielders of roshe all coach outlet online time and did air max it with burberry handbags outlet unprecedented polo ralph lauren swagger. cheap michael kors He air jordan retro was hogan women shoes also coach outlet a power pacers jersey hitter, finishing polo ralph his hollister caareer ray ban sunglasses outlet with 630 new balance canada home ralph lauren polo runs -- pandora which red bottoms now celine black friday ranks ferragamo sixth salvatore ferragamo in MLB mbt mens shoes history calvin klein underwear Traditional michael kors outlet online contenders hollisterco Brazil, Greece and basketball shoes Turkey chaussure timberland drew givenchy handbags the other celine bags three oakley sunglasses cheap spots ray ban wayfarer to chi hair complete the pandora schmuck 24-team michael kors field air max 2015 for dre beats this jordans summers burberry handbags outlet tournament in coach outlet online Spain, clippers jersey basketball polo ralph lauren outlet online governing body FIBA iphone 5 cases announced jazz jersey Saturday beats by dr dre at michael kors black friday its meeting swarovski canada in Barcelona. red bottom shoes Ken Griffey thomas sabo Jr. adidas was handbags outlet the top hollister co pick in fidget spinner the 1987 MLB draft. nba jerseys Then mcm handbags he went on to the north face outlet have an illustrious ray ban outlet 22-year nike air yeezy career. nike outlet Now, giuseppe zanotti sneakers not nike Air Max Plaza only timberwolves jersey is puma online he packers nfl jersey a jordans Hall of rolex replica Fame nike inductee, lions nfl jersey but cheap mlb jerseys hes oakley vault also the air max 90 cover brooklyn nets jersey athlete louboutin outlet for the eagles nfl jersey video ipad mini cases game MLB saints nfl jersey The browns nfl jersey Show northface 17, which hits kate spade outlet online stores barbour jackets on charlotte hornets jerseys March redskins nfl jersey 28, grizzlies jersey 2017.The swarovski jewelry Kid will timberland boots be the knockoff handbags first retired player michael kors outlet online to grace the versace clothes cover of ralph lauren The Show. Fans longchamp outlet will mcm handbags have the hollister opportunity to play with ray bans him pandora jewelry in the asics game, handbags outlet as coach handbags hell asics gel be considered a roshe runs playable living legend.Griffey was nike huaraches arguably one of the best cheap michael kors outfielders michael kors purses of nike shoes all michael kors taschen time cheap jordans and christian louboutin shoes did it discount shoes with nba jersey unprecedented prada outlet swagger. katespade He was salomon also a nike power adidas online hitter, jimmy choo outlet finishing his nike outlet caareer longchamp with steelers nfl jersey 630 home philadelphia 76ers jerseys runs -- which now ranks sixth supra footwear in MLB nike air max 2014 history Traditional contenders Brazil, Greece coach factory and fossil uhren Turkey drew longchamp the colts nfl jersey other coach handbags three burberry sale spots nike to coach factory outlet online complete the under armour curry 24-team designer handbags field for this instyler summers tournament in cheap mlb jerseys Spain, ralph lauren polos basketball ralph lauren outlet governing body phoenix suns FIBA ralph lauren outlet online announced Saturday at its omega watches meeting vans shoes in cheap oakley sunglasses Barcelona. max shoes Ken beats by dr dre Griffey Jr. michael kors was the oakley vault top pick nike free in kate spade bags the cheap nike shoes 1987 veneta MLB draft. Then tory burch shoes he new balance outlet went bottega veneta on nike tracksuits to have an azcardinals nfl jersey illustrious michael kors 22-year bills nfl jersey career. jets nfl jersey Now, chrome hearts store not only is he ralph lauren black friday a Hall nike roshe of barbour outlet online Fame free run inductee, but adidas outlet hes seahawks nfl jersey also the cover athlete for north face the video panthers nfl jersey game MLB The Show true religion jeans men 17, north face which hits hogan outlet stores on nike air max March 28, huarache 2017.The Kid will be burberry outlet online the first longchamp handbags retired player nike air max to michael kors bags grace the dwyane wade jersey cover of michael kors outlet online sale The hollisterco Show. nba jersey Fans will air jordans have true religion outlet the opportunity to play with michael kors canada him coach purses factory in chiefs nfl jersey the game, ralph lauren outlet as new balance hell be vikings nfl jersey considered a playable living replica rolex legend.Griffey longchamp black friday was ray ban sunglasses outlet arguably bucks jersey one long champ of ralph lauren outlet online the nike air huarache best outfielders air max 90 of all hollister time and did barbour jackets it barbour jackets with raiders nfl jersey unprecedented woolrich mens jackets swagger. rolex watches He five finger shoes was also michael kors a nike.com power hitter, finishing his nike roshe caareer with replica rolex 630 home juicy couture outlet runs aktienkurse adidas -- ralph lauren which now michael kors handbags ranks sixth in ray ban MLB cheap barbour jackets history Traditional cheap clothes contenders Brazil, true religion jeans women Greece and Turkey drew ray ban black friday the burberry other broncos nfl jersey three spots north face outlet to occhiali oakley complete michael kors handbags the 24-team jordan field vans for this summers tournament oakley canada in Spain, ray ban outlet online basketball timberland outlet governing michael kors purses body ferragamo shoes FIBA announced Saturday air force at its meeting nike outlet store in softball bats Barcelona. Ken bengals nfl jersey Griffey fake rolex Jr. cheap true religion was the top pick michael kors handbags in adidas the pandora uk 1987 MLB air max draft. cheap jerseys Then oakley he went wizards jersey on to prada handbags have coach store an jimmy choo shoes illustrious mcm handbags outlet 22-year falcons nfl jersey career. ed hardy Now, prada sunglasses not only puma sneakers is timberland shoes he a Hall tommy hilfiger of Fame inductee, buccaneers nfl jersey but hes also the cover reebok athlete rockets jersey for the plein outlet video kings jersey game MLB longchamp outlet The mizuno running Show 17, which dallas mavericks jerseys hits stores on ecco outlet online March coach store online 28, michael kors 2017.The new orleans pelicans Kid nike free run 5.0 will be cartier montres the nike air max first true religion retired dsquared2 outlet player to swarovski crystal grace the cheap nhl jerseys cover of michael kors outlet The Show. Fans cheap jerseys will have ralph lauren online the nike air max 2014 opportunity to ray bans play ray ban outlet with him in the tn pas cher game, as hell be occhiali ray ban considered a playable air max living legend.Griffey bcbg max was tommy hilfiger arguably cheap ray ban one of cheap oakley sunglasses the oakley sunglasses best burberry outfielders louboutin uk of michael kors all time and did it with unprecedented swagger. bcbg max azria He ray ban was adidas also a power hermes hitter, finishing jerseys from china his ralph lauren online shop caareer with thomas sabo 630 home runs -- mcm bags which now ranks sixth marc jacobs in hogan MLB history


  • 0



Reply to this topic



  



 

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Community Skin by Fredson Nunes Junior