2
Contributors
8
Replies
45
Views
3 Years
Discussion Span
Last Post by cereal
0

Hi,

if you're using Apache and you can use the .htaccess file, then you can apply these rules:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteCond %{HTTP_HOST} ^site1.tld
    RewriteCond %{REQUEST_URI} logo.png
    RewriteRule ^logo\.png$ logo1.png [L]

    RewriteCond %{HTTP_HOST} ^site2.tld
    RewriteCond %{REQUEST_URI} logo.png
    RewriteRule ^logo\.png$ logo2.png [L]

    RewriteRule ^ - [PT]
</IfModule>

So create a link to the logo.png file, for example:

<img src="/logo.png" />

When you access to http://site1.tld/ the rewrite rule will load logo1.png, when accessing http://site2.tld/ will load logo2.png. This is not a redirect, it's working as an alias and will return status code 200 or 304.

Docs: http://httpd.apache.org/docs/2.2/rewrite/flags.html

0

i tried it, but i cant make it work.

my logo.png file link is

<img src="http://mianbros.com/skin/frontend/default/f001/images/logo.png" alt="My Logo" />

.htaccess file

############################################
## uncomment these lines for CGI mode
## make sure to specify the correct cgi php binary file name
## it might be /cgi-bin/php-cgi

#    Action php5-cgi /cgi-bin/php5-cgi
#    AddHandler php5-cgi .php

############################################
## GoDaddy specific options

#   Options -MultiViews

## you might also need to add this line to php.ini
##     cgi.fix_pathinfo = 1
## if it still doesn't work, rename php.ini to php5.ini

############################################
## this line is specific for 1and1 hosting

    #AddType x-mapp-php5 .php
    #AddHandler x-mapp-php5 .php

############################################
## default index file

    DirectoryIndex index.php

<IfModule mod_php5.c>

############################################
## adjust memory limit

#    php_value memory_limit 64M
    php_value memory_limit 256M
    php_value max_execution_time 18000

############################################
## disable magic quotes for php request vars

    php_flag magic_quotes_gpc off

############################################
## disable automatic session start
## before autoload was initialized

    php_flag session.auto_start off

############################################
## enable resulting html compression

    #php_flag zlib.output_compression on

###########################################
# disable user agent verification to not break multiple image upload

    php_flag suhosin.session.cryptua off

###########################################
# turn off compatibility with PHP4 when dealing with objects

    php_flag zend.ze1_compatibility_mode Off

</IfModule>

<IfModule mod_security.c>
###########################################
# disable POST processing to not break multiple image upload

    SecFilterEngine Off
    SecFilterScanPOST Off
</IfModule>

<IfModule mod_deflate.c>

############################################
## enable apache served files compression
## http://developer.yahoo.com/performance/rules.html#gzip

    # Insert filter on all content
    ###SetOutputFilter DEFLATE
    # Insert filter on selected content types only
    #AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript

    # Netscape 4.x has some problems...
    #BrowserMatch ^Mozilla/4 gzip-only-text/html

    # Netscape 4.06-4.08 have some more problems
    #BrowserMatch ^Mozilla/4\.0[678] no-gzip

    # MSIE masquerades as Netscape, but it is fine
    #BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    # Don't compress images
    #SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

    # Make sure proxies don't deliver the wrong content
    #Header append Vary User-Agent env=!dont-vary

</IfModule>

<IfModule mod_ssl.c>

############################################
## make HTTPS env vars available for CGI mode

    SSLOptions StdEnvVars

</IfModule>

<IfModule mod_rewrite.c>

############################################
## enable rewrites

    Options +FollowSymLinks
    RewriteEngine on

############################################
## you can put here your magento root folder
## path relative to web root

    #RewriteBase /magento/

############################################
## uncomment next line to enable light API calls processing

#    RewriteRule ^api/([a-z][0-9a-z_]+)/?$ api.php?type=$1 [QSA,L]

############################################
## rewrite API2 calls to api.php (by now it is REST only)

    RewriteRule ^api/rest api.php?type=rest [QSA,L]

############################################
## workaround for HTTP authorization
## in CGI environment

    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

############################################
## TRACE and TRACK HTTP methods disabled to prevent XSS attacks

    RewriteCond %{REQUEST_METHOD} ^TRAC[EK]
    RewriteRule .* - [L,R=405]

############################################
## redirect for mobile user agents

    #RewriteCond %{REQUEST_URI} !^/mobiledirectoryhere/.*$
    #RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
    #RewriteRule ^(.*)$ /mobiledirectoryhere/ [L,R=302]

############################################
## always send 404 on missing files in these folders

    RewriteCond %{REQUEST_URI} !^/(media|skin|js)/

############################################
## never rewrite for existing files, directories and links

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l

############################################
## rewrite everything else to index.php

    RewriteRule .* index.php [L]

</IfModule>

############################################
## Prevent character encoding issues from server overrides
## If you still have problems, use the second line instead

    AddDefaultCharset Off
    #AddDefaultCharset UTF-8

<IfModule mod_expires.c>

############################################
## Add default Expires header
## http://developer.yahoo.com/performance/rules.html#expires

    ExpiresDefault "access plus 1 year"

</IfModule>
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} ^fmscopk.com
    RewriteCond %{REQUEST_URI} logo.png
    RewriteRule ^logo\.png$ logo2.png [L]
    RewriteCond %{HTTP_HOST} ^mianbros.com
    RewriteCond %{REQUEST_URI} logo.png
    RewriteRule ^logo\.png$ logo6.png [L]
    RewriteRule ^ - [PT]
    </IfModule>
############################################
## By default allow all access

    Order allow,deny
    Allow from all

###########################################
## Deny access to release notes to prevent disclosure of the installed Magento version

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

############################################
## If running in cluster environment, uncomment this
## http://developer.yahoo.com/performance/rules.html#etags

    #FileETag none

where
logo2.png and logo6.png complete address are

http://mianbros.com/skin/frontend/default/f001/images/logo2.png
http://mianbros.com/skin/frontend/default/f001/images/logo6.png

Do i have to usecomplete URLs in rewrite?

Edited by waqas_2

0

using this

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^fmscopk.com
RewriteCond %{REQUEST_URI} skin/frontend/default/f001/images/logo.png
RewriteRule ^skin/frontend/default/f001/images/logo\.png$ skin/frontend/default/f001/images/logo6.png [L,R=301]
RewriteCond %{HTTP_HOST} ^mianbros.com
RewriteCond %{REQUEST_URI} skin/frontend/default/f001/images/logo.png
RewriteRule ^skin/frontend/default/f001/images/logo\.png$ skin/frontend/default/f001/images/logo3.png [L,R=301]
RewriteRule ^ - [PT]
</IfModule>

change logo for mianbros.com
it change logo.png to logo3.png
but it is not working for fmscopk.com, it is also changing same logo for his domain, instead of logo6.png
note: with [L] nothing was working, with [L,R=301] it is chaging only for 1 domain, not changing for other one,

Edited by waqas_2

0

I see you are redirecting both now:

If you do not want these redirects and if you can access the server config or the virtual host context, then you can enable the rewrite log and check the reason why the rule is not working correctly. To enable it, write:

RewriteLog "/tmp/rewrite.log"
RewriteLogLevel 9

Set back the flag to [L] to generate the error and reload Apache, otherwise the log file will not be created. You can change the path for the rewrite log. After you finish the debug remember to disable it or to low the log level to 2, otherwise the website can slow down, since level 9 is very verbose.

More information:

Edited by cereal

0

when i add these lines to .htaccess file. website gives error 500

    RewriteLog "/tmp/rewrite.log"
    RewriteLogLevel 9

correction: sorry
this is Apache Virtual Host code.

Edited by waqas_2

0

here error log
i dont know what does it means

66.249.74.115 - - [08/Mar/2014:05:12:27 --0600] [mianbros.com/sid#3ab1260][rid#61774b8/initial/redir#1] (3) [perdir /home/mianbros/public_html/] applying pattern '.*' to uri 'index.php'
66.249.74.115 - - [08/Mar/2014:05:12:27 --0600] [mianbros.com/sid#3ab1260][rid#61774b8/initial/redir#1] (3) [perdir /home/mianbros/public_html/] strip per-dir prefix: /home/mianbros/public_html/index.php -> index.php
66.249.74.115 - - [08/Mar/2014:05:12:27 --0600] [mianbros.com/sid#3ab1260][rid#61774b8/initial/redir#1] (3) [perdir /home/mianbros/public_html/] applying pattern '^skin/frontend/default/f001/images/logo\.png$' to uri 'index.php'
66.249.74.115 - - [08/Mar/2014:05:12:27 --0600] [mianbros.com/sid#3ab1260][rid#61774b8/initial/redir#1] (3) [perdir /home/mianbros/public_html/] strip per-dir prefix: /home/mianbros/public_html/index.php -> index.php
66.249.74.115 - - [08/Mar/2014:05:12:27 --0600] [mianbros.com/sid#3ab1260][rid#61774b8/initial/redir#1] (3) [perdir /home/mianbros/public_html/] applying pattern '^' to uri 'index.php'
66.249.74.115 - - [08/Mar/2014:05:12:27 --0600] [mianbros.com/sid#3ab1260][rid#61774b8/initial/redir#1] (2) [perdir /home/mianbros/public_html/] forcing '/home/mianbros/public_html/index.php' to get passed through to next API URI-to-filename handler
66.249.74.115 - - [08/Mar/2014:05:12:27 --0600] [mianbros.com/sid#3ab1260][rid#61774b8/initial/redir#1] (1) [perdir /home/mianbros/public_html/] initial URL equal rewritten URL: /home/mianbros/public_html/index.php [IGNORING REWRITE]
0

Sorry I missed your reply. So, the rewrite is ignored because it is conflicting with the previouses rules.

You can try to move them to the top of the block of rules, and it should work fine:

############################################
## enable rewrites
    Options +FollowSymLinks
    RewriteEngine on

    RewriteCond %{HTTP_HOST} ^site1.ci
    RewriteCond %{REQUEST_URI} logo.png
    RewriteRule ^logo\.png$ logo1.png [L]

    RewriteCond %{HTTP_HOST} ^site2.ci
    RewriteCond %{REQUEST_URI} logo.png
    RewriteRule ^logo\.png$ logo2.png [L]

    RewriteRule ^ - [PT]
############################################
## you can put here your magento root folder
## path relative to web root
    #RewriteBase /magento/
############################################
## uncomment next line to enable light API calls processing
#    RewriteRule ^api/([a-z][0-9a-z_]+)/?$ api.php?type=$1 [QSA,L]
############################################
## rewrite API2 calls to api.php (by now it is REST only)
    RewriteRule ^api/rest api.php?type=rest [QSA,L]
############################################
## workaround for HTTP authorization
## in CGI environment
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
############################################
## TRACE and TRACK HTTP methods disabled to prevent XSS attacks
    RewriteCond %{REQUEST_METHOD} ^TRAC[EK]
    RewriteRule .* - [L,R=405]
############################################
## redirect for mobile user agents
    #RewriteCond %{REQUEST_URI} !^/mobiledirectoryhere/.*$
    #RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
    #RewriteRule ^(.*)$ /mobiledirectoryhere/ [L,R=302]
############################################
## always send 404 on missing files in these folders
    RewriteCond %{REQUEST_URI} !^/(media|skin|js)/
############################################
## never rewrite for existing files, directories and links
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
############################################
## rewrite everything else to index.php
    RewriteRule .* index.php [L]

Just remember to change the paths and check if the other rules are working fine.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.