RE: Rewrite domain to language specific page but no address bar redirection

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I tested a bit more , and unfortunately it breaks somewhere 
Probably I should have mentioned that the path’s after  ….hostname.com/  are not always physical paths on the disk , actually I think like 95% are not 
For example 
lang-fr.hostname.com/user/  , lang-fr.hostname.com/admin , lang-fr.hostname.com/admin/modules 
or
hostname.com/fr/user , hostname.com/fr/admin , hostname.com/admin , hostname.com/admin/modules
or
lang-fr.hostname.com/fr/user , lang-fr.hostname.com/fr/admin , lang-fr.hostname.com/fr/admin/modules

And deeper paths are generated by drupal , and there is no index file , just the path

I tried to do this to remove the index.php file from the path , and this works but deeper paths don’t

  RewriteCond %{HTTP_HOST} ^lang-fr\.hostname\.com$ [NC]
  RewriteCond %{REQUEST_URI} !^/fr/.*$
  RewriteCond %{THE_REQUEST} ^GET.*index\.php$ [NC]
  RewriteRule ^(.*)index\.php/*(.*)$ /fr/$2 [L]

From: Marat Khalili [mailto:mkh@xxxxxx] 
Sent: Friday, March 25, 2016 2:31 PM
To: users@xxxxxxxxxxxxxxxx
Subject: Re:  Rewrite domain to language specific page but no address bar redirection

It's tricky. Here's a rule set that works for me (but it may depend on Apache version and configuration):

# fr-lang {
  RewriteCond %{ENV:REDIRECT_STATUS} ^$
  RewriteCond %{REQUEST_URI} ^/fr$
  RewriteRule ^fr$ http://lang-fr.hostname.com/ [L,R=302]

  RewriteCond %{ENV:REDIRECT_STATUS} ^$
  RewriteCond %{REQUEST_URI} ^/fr/.*$
  RewriteRule ^fr/(.*)$ http://lang-fr.hostname.com/$1 [L,R=302]

  RewriteCond %{HTTP_HOST} ^www\.lang-fr\.hostname\.com$ [NC]
  RewriteRule ^(.*)$ http://lang-fr.hostname.com/$1 [R=301,L]

  RewriteCond %{HTTP_HOST} ^lang-fr\.hostname\.com$ [NC]
  RewriteCond %{REQUEST_URI} !^/fr/.*$
  RewriteRule ^(.*)$ /fr/$1 [L]

  RewriteCond %{HTTP_HOST} ^lang-fr\.hostname\.com$ [NC]
  RewriteRule ^(.*)$ - [L]
# fr-lang }

Repeat for each language (probably it's possible to make a single rule set for all languages, but I didn't try it).
--

With Best Regards,
Marat Khalili



On 25/03/16 11:13, Alexandru Duzsardi wrote:
Hello,
I’ve search around on search engines but I could not find any answers that solve my dilemma
I have a VirtualHost configured to respond on multiple hostnames 
Example: hostname.com , lang-fr.hostname.com , lang-nl.hostname.com , fr-lang.hostname.com , nl-lang.hostname.com
Now , what I would like is that 
If somebody is accessing lang-fr.hostname.com and fr-lang.hostname.com to actually  see the pages under hostname.com/fr/… but without redirection 
Like lang-fr.hostname.com/users to actually be hostname.com/fr/users , and so on for other languages.
 
I’ve tried some things but always get to many redirects or some other error and can’t figure it out why is that happening , but if I had to guess is because I’m using RewriteCond  correctly.
 
Thank you in advance!
 
 



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx





[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux