2011-11-27 7 views
0

mon site Web PHP utilise des URL dynamiques et s'exécute dans Apache. Ce site peut être consulté en néerlandais et en anglais. Par défaut est néerlandais mais je veux que les gens voient la version anglaise par défaut s'ils visitent: http://example.com La version anglaise peut être visualisée avec http://example.com/en mais c'est une URL dynamique et le répertoire/en n'est pas présent physiquement. Je peux faire une redirection 301 mais je ne veux pas que les utilisateurs voient/en dans l'URL.Apache URL réécrire à une URL dynamique

C'est ce que j'ai jusqu'à présent dans ma config virtualhost:

RewriteEngine on 
RewriteRule ^/(.*)$ /en [NC] 

Malheureusement, cela ne fonctionne pas du tout. Je reçois toujours la page néerlandaise lors de la visite du domaine .com. Est-ce que quelqu'un connaît la bonne réécriture pour atteindre mon objectif? Je préfère la règle dans mon fichier de configuration apache virtualhost.

Répondre

0

Pouvez-vous essayer someting lke:

 
RewriteRule !^[a-z]{2}/ /en%{REQUEST_URI} [L,R=301] 

J'espère que cela fonctionne pour vous

+0

Nous vous remercions de la rapidité de réponse. Malheureusement, la règle que vous avez fournie aboutit à une boucle de redirection infinie vers/en/en/en/en etc. – user1067807

0

un coup d'oeil à http://httpd.apache.org/docs/current/rewrite/flags.html qui détaille tous les drapeaux possibles. Puisque vous dites/fr n'est pas physiquement présent, vous devrez peut-être utiliser P ou PT pour que vos autres règles soient évaluées après la réécriture.

Vous pouvez essayer de conserver l'URI d'origine dans le cadre de la redirection.

RewriteRule ^/(.*) /en/$1 [NC]