Forums / Setup & design / multiple multi-lingual site with host access method?

multiple multi-lingual site with host access method?

Author Message

raphael bauduin

Wednesday 16 July 2008 1:09:55 am

Hi,

I want to host multiple websites with the host access method, in which the hostname is mapped to a site access.

But each language of a website is also a siteaccess (at least in the uri acces method).

How can I combine both?

HEre's an example:

Let's say I have 2 multilingual (fr, en) websites (www.raphinou.com and www.profoss.eu) I want to host in one ez publish installation. I will then use 2 hostnames (www.raphinou.com and www.profoss.eu) and 4 site accesses (profoss-fr, profoss-en, raphinou-fr, raphinou-en)) right? But then have 2 site accesses to map to one host.

Is it possible to achieve what I want?

Thanks

Raphaƫl

Ivo Lukac

Wednesday 16 July 2008 9:01:55 am

Hi raphael,

This question pops up every year but I'm afraid that the answer is the same. You can't mix hostname and uri siteaccess matching.

Easy alternative solution is to use hostname matching and for multilanguage use subdomains ( for example en.raphinou.com, fr.raphinou.com).

There is one more solution which is very ugly. You need to have to virtual dirs for every domain and then link everything on filesystem except settings dir.
Very, very ugly .

Hope to see some better solutions in the near future...

http://www.linkedin.com/in/ivolukac
http://www.netgen.hr/eng/blog
http://twitter.com/ilukac

michiel n.

Thursday 17 July 2008 5:45:13 am

I haven't tried this yet: but what about some apache rewriterules + regexpmatching? Would that make it possible?

Certified eZ developer looking for projects.
michieln at gmail dot com
http://ez.no/certification/verify/225305

Steven E. Bailey

Thursday 17 July 2008 6:26:16 am

This is how we've solved it:

http://ez.no/developer/forum/developer/running_two_multilingual_sites_on_a_single_ezp_installation

It does require adding a few lines to access.php and lib/ezutils/classes/ezsys.php

specifically, to access.php:

                else if ( $match_type == 'element' )
                {
                    $match_index = $ini->variable( 'SiteAccessSettings', 'URIMatchElement' );
                    $elements = $uri->elements( false );
                    $elements = array_slice( $elements, 0, $match_index );
                    $name = implode( '_', $elements );

 //start Contactivity multilingual hack
                    $hostname=explode(".",$host);
                    $hostname=explode(":",$hostname[0]);
                    $language=implode( '_', $elements );
                    if (!$language)
                        $language="en";
                    $name=$hostname[0]."_".$language;
//end Contactivity multilingual hack

                }

to ezsys.php:

    static function addAccessPath( $path )
    {
        $instance = eZSys::instance();
        if ( !is_array( $path ) )
            $path = array( $path );

//start multilingual Contactivity hack
        $modified_path=explode("_",implode(",",$path));
        $path=array($modified_path[1]);
//end multilingual Contactivity hack

        $instance->AccessPath = array_merge( $instance->AccessPath, $path );
    }

Certified eZPublish developer
http://ez.no/certification/verify/396111

Available for ezpublish troubleshooting, hosting and custom extension development: http://www.leidentech.com

Ivo Lukac

Thursday 17 July 2008 6:30:40 am

Maybe, I am not an expert for rewrite rules :/

Idea would be to map www.foo.com/bar <i>internally</i> at apache level to bar.foo.com. Don't know is it possible.

Of course you can do it externally just like a redirect of some kind but that would not be very wise regarding search index bots.

http://www.linkedin.com/in/ivolukac
http://www.netgen.hr/eng/blog
http://twitter.com/ilukac

Wei Dai

Tuesday 06 October 2009 7:55:05 pm

Do you think you could just use 4 site access and two domains, with the two domains point to the same eZ Publish root? Thus, you can just use the uri match order.

Certified eZ Publish 4 developer looking for develop information & collaboration.