httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christian Hettler <christian.hett...@asknet.de>
Subject Re: [users@httpd] Rewrite domain to language specific page but no address bar redirection
Date Wed, 30 Mar 2016 07:19:26 GMT
Hello Alexandru,

On Tue, Mar 29, 2016 at 01:23:54PM +0300, Alexandru Duzsardi wrote:
> I'm not sure what you mean
> For now I can't figure it out why does it behave like this ... if I try to access http://lang-fr.domain.com/
It says that /fr/index.php does not exist , I would like it to no try to find an index just
access the path specified 
> 
> Regarding the PT flag , did you mean something like this ?

Yes. After a [PT]-Rule matches config processing will "start" again to process Alias, ScriptAlias
and co.
Without [PT] no Alias processing happens and the result should/must be a file path.

> 
> # 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 [PT,L]
> 
> RewriteCond %{HTTP_HOST} ^lang-fr\.hostname\.com$ [NC] 
> RewriteRule ^(.*)$ - [PT,L]
> 
> # fr-lang 
> 

BTW: do you know mod_macro? It may improve the administion of your config for different lang.

Christian

> 
> Thank you!
> 
> 
> -----Original Message-----
> From: Christian Hettler [mailto:christian.hettler@asknet.de] 
> Sent: Tuesday, March 29, 2016 12:08 PM
> To: users@httpd.apache.org
> Subject: Re: [users@httpd] Rewrite domain to language specific page but no address bar
redirection
> 
> did you check the flag [PT] for RewriteRule?
> 
> Christian
> 
> On Fri, Mar 25, 2016 at 04:27:46PM +0200, Alexandru Duzsardi wrote:
> > 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@rqc.ru]
> > Sent: Friday, March 25, 2016 2:31 PM
> > To: users@httpd.apache.org
> > Subject: Re: [users@httpd] 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@httpd.apache.org
> > For additional commands, e-mail: users-help@httpd.apache.org
> > 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
> For additional commands, e-mail: users-help@httpd.apache.org
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
> For additional commands, e-mail: users-help@httpd.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Mime
View raw message