0

I want that user can access my site with or without www.But it didn't work with wwww. My site removing www from address and redirect to non www address like http://example.co.uk.I write this code in htaccess for www but didn't work.

RewriteCond %{http_host} ^babycave.co.uk [NC]
RewriteRule ^(.*) http://www.babycave.co.uk/$1 [L,R=301]

Can any body guide me where the issue is ? from admin side i setted secure and unsecure url's like http://babycave.co.uk/.Thanks

Below is my 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
RewriteCond %{HTTP_HOST} ^babycave.co.uk$
RewriteRule (.*) http://www.babycave.co.uk$1 [R=301]

############################################
## 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>

############################################
## 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
2
  • Have you checked your core_config_data table ? Check what is the base URL in there. You need to write the base URL as http://www.example.com
    – Dexter
    Dec 23, 2013 at 6:13
  • yes i checked and changed the secure and unsecure url to http://www.example.com.check comments btwn me and Su123 Dec 23, 2013 at 6:15

3 Answers 3

1

Try this.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^babycave.co.uk$
RewriteRule (.*) http://www.babycave.co.uk$1 [R=301]

EDIT:

Go to table core_config_data

Update these values to new URL

web/secure/base_url //(new url)
web/unsecure/base_url // (new url)

Empty the var folder.

14
  • Sorry this error "This webpage has a redirect loop".I am pasting my htaccess file in question area so one can get idea where i goes wrong. Dec 23, 2013 at 4:26
  • Edited the answer. Have a look at it.
    – Sukeshini
    Dec 23, 2013 at 4:31
  • you mean that i will change the secure and unsecure url to www.babycav.co.uk then it will work ? Dec 23, 2013 at 4:32
  • yes. then clear the cash as well
    – Sukeshini
    Dec 23, 2013 at 4:36
  • Not working same issue you can check online. Dec 23, 2013 at 4:40
0

Try this and let me know the result!

RewriteCond %{HTTP_HOST} ^!babycave.co.uk$ [NC]
RewriteRule ^(.*)$ http://www.babycave.co.uk/$1 [R=301,L]

Alternate ( Virtual Host )

<VirtualHost *:80>
   ServerAlias babycave.co.uk
   RedirectMatch permanent ^/(.*) http://www.babycave.co.uk/$1
</VirtualHost>

or

<VirtualHost *:80>
  ServerName babycave.co.uk
  Redirect permanent / http://www.babycave.co.uk/
</VirtualHost>
10
  • Thanks for replay but didn't work.Redirect www to non www. Dec 23, 2013 at 2:20
  • Mahmud, is it possible to use this rewrite rules in the vhost config instead of .htaccess? I will give you an other alternative! Dec 23, 2013 at 9:01
  • I have no idea but we can try. Dec 23, 2013 at 9:04
  • Mahmud, try edited post please! Also, don't forget to remove above rules from .htaccess to be able to eliminate rule conflict. Dec 23, 2013 at 9:11
  • Do i add virtual host code to htaccess ? Dec 23, 2013 at 9:13
0

I solved the issue from plesk panel. In Plesk admin -> domain -> "Hosting Settings" goto the option Preffered Domain.

The default option in my setup is "domain.tld". I change it to "www.domain.tld" and then change database secure and unsecure paths to http://www.example.com in core_config_Data table.If you didn't change anyone of them then it will show redirect loop error.No need to change htaccess for this.Thanks all of you

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.