Magento 1.x Basic Configuration

Magento 1.x requires a couple of basic configurations to make it work.

.htaccess

Magento 1.x comes with a bloated .htaccess file out of the box,  which can slow the site’s performance down and sets defaults for variables that limit scalability.

Replace the full contents of Magento’s .htaccess with this:

php_value memory_limit 256M
php_value always_populate_raw_post_data -1
<IfModule mod_rewrite.c>    
Options +FollowSymLinks    
RewriteEngine on    
RewriteRule ^api/rest api.php?type=rest [QSA,L]    
RewriteCond %{REQUEST_METHOD} ^TRAC[EK]    
RewriteRule .* - [L,R=405]    
RewriteCond %{REQUEST_URI} !^/(media|skin|js)/    
RewriteCond %{REQUEST_FILENAME} !-f    
RewriteCond %{REQUEST_FILENAME} !-d    
RewriteCond %{REQUEST_FILENAME} !-l    
RewriteRule .* index.php [L]
</IfModule>

#If you have charset-problems, you could try uncommenting the following line
#AddDefaultCharset off

<Files RELEASE_NOTES.txt>
order allow,deny    
deny from all
</Files>

Correct IP Addresses in logs

Because Magento is placed behind a reverse proxy in our setup, you will need to add the remote_addr_headers section to your config file in app/etc/local.xml to get correct visitor IP addresses throughout Magento.

<global>
...    
<remote_addr_headers>        
HTTP_X_REAL_IP        
HTTP_X_FORWARDED_FOR    
</remote_addr_headers>
...
</global>