Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3290 connectés 

 


Dernière réponse
Sujet : [Apache] Problème de RewriteRule
jackyl Juste un détail mais pourquoi ne pas plutôt utiliser des classes PHP pour la gestion des langues sur 1 seul host.. je ne saisis pas ou est l'avantage dans ta solution.
 
1) tu proposes un choix de language au visiteur, store les règlages dans un cookie..Si le client n'accepte pas les cookies, le règlage est stocké dans la variable de session pour la durée de la visite de toute façon... ou mieux, utiliser la langue par défaut du navigateur par exemple.
2) une instance de classe "language" en PHP par exemple est créée a chaque page et prend en charge la traduction de chaque text_ID[n] par exemple en fonction de la valeur storée dans le cookie.. text_ID[n] représentant une array de messages stockés, pourquoi pas, soit dans la définition de classe elle-même, soit dans une base mysql, et utilisables pour le contenu des pages..On appelle chaque text_ID depuis les pages en fonction des messages à afficher, titres, liens etc... enfin bon l'explication pourrait sûrement être plus claire mais tu vois ce que je veux dire.
 
Je ne comprend absolument pas la lourdeur d'avoir à utiliser deux virtual hosts pour çà, c'est multiplier par deux la galère de mises à jours, de maintenance, etc...  :??:

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
jackyl Juste un détail mais pourquoi ne pas plutôt utiliser des classes PHP pour la gestion des langues sur 1 seul host.. je ne saisis pas ou est l'avantage dans ta solution.
 
1) tu proposes un choix de language au visiteur, store les règlages dans un cookie..Si le client n'accepte pas les cookies, le règlage est stocké dans la variable de session pour la durée de la visite de toute façon... ou mieux, utiliser la langue par défaut du navigateur par exemple.
2) une instance de classe "language" en PHP par exemple est créée a chaque page et prend en charge la traduction de chaque text_ID[n] par exemple en fonction de la valeur storée dans le cookie.. text_ID[n] représentant une array de messages stockés, pourquoi pas, soit dans la définition de classe elle-même, soit dans une base mysql, et utilisables pour le contenu des pages..On appelle chaque text_ID depuis les pages en fonction des messages à afficher, titres, liens etc... enfin bon l'explication pourrait sûrement être plus claire mais tu vois ce que je veux dire.
 
Je ne comprend absolument pas la lourdeur d'avoir à utiliser deux virtual hosts pour çà, c'est multiplier par deux la galère de mises à jours, de maintenance, etc...  :??:
j2c alors ? du nouveau ?
aleske J'ai essayé en remplaçant le premier virtual host par  
 

Code :
  1. <VirtualHost 1.2.3.4:80>
  2. RewriteEngine on
  3. RewriteRule ^/fr(.*)$ http://1.2.3.4:8011$1
  4. RewriteRule ^/back(.*)$ http://1.2.3.4:8010$1
  5. RewriteRule ^/en(.*)$ http://1.2.3.4:8012$1
  6. </VirtualHost>


 
Dans ce cas, ça fonctionne comme un redirect (l'url est modifiée dans le navigateur). Pourtant d'habitude ça ne fonctionne pas comme ça ...
 
Pourquoi tant de haine ?  :(

aleske Pour rendre ma question plus clair, je voudrais juste que quand je tape www.monsite.com/fr/*, ça fasse comme si j'avais tapé www.monsite.com:8011/*
aleske Bonjour à tous,
 
Avec apache, j'ai un petit problème que je pense être résolvable via RewriteRule mais je ne vois pas comment.
Mon site est multilingue. L'accès au site français se fait par http://www.monsite.com?site_id=1 et le site anglais par http://www.monsite.com?site_id=2. D'habitude, on utilise des virtuals hosts et RewriteRule pour mapper le port 8011 avec le site_id=1 et 8012 avec site_id=2.
Le problème est que cette fois le client veut www.monsite.com/fr/ et www.monsite.com/en/
Ca ne le gène pas d'utiliser plusieurs ports mais il ne veut pas voir apparaitre les ports dans l'url ni utiliser fr.monsite.com et en.monsite.com
 
Je pensais regler le problème en déclarant un virtualhost sur le port 80 qui aurait 2 RewriteRule pour rediriger vers les deux virtuals hosts mais j'ai l'impression que ça ne marche pas ...
Voila mon fichier host.
Qu'est-ce que j'ai fait de mal ?
 
Merci d'avance.
 

Code :
  1. <VirtualHost 1.2.3.4>
  2. RewriteEngine on
  3. RewriteRule ^http://1.2.3.4/fr/(.*)$ http://1.2.3.4:8011/index.php?site_id=1
  4. RewriteRule ^http://1.2.3.4/en/(.*)$ http://1.2.3.4:8012/index.php?site_id=2
  5. </VirtualHost>
  6. ########### FRANCAIS ############
  7. <VirtualHost 1.2.3.4:8011>
  8. DocumentRoot /sources
  9. DirectoryIndex index.php?site_id=1
  10. RewriteEngine on
  11. RewriteRule ^/page/(.*)$ /index.php?site_id=1
  12. ErrorDocument 404 /index.php?site_id=1
  13. ErrorDocument 501 /index.php?site_id=1
  14. ErrorDocument 503 /index.php?site_id=1
  15. </VirtualHost>
  16. ########### ANGLAIS ############
  17. <VirtualHost 1.2.3.4:8012>
  18. DocumentRoot /sources
  19. DirectoryIndex index.php?site_id=2
  20. RewriteEngine on
  21. RewriteRule ^/page/(.*)$ /index.php?site_id=2
  22. ErrorDocument 404 /index.php?site_id=2
  23. ErrorDocument 501 /index.php?site_id=2
  24. ErrorDocument 503 /index.php?site_id=2
  25. </VirtualHost>


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)