2010-12-15 74 views
0

J'ai un site Web propulsé par WordPress MU. La première page du site est traduite en plusieurs langues. Comment réécrire les URL suivantes?WordPress et .htaccess

http://www.example.com/?lang=en 
http://www.example.com/?lang=fr 

à:

http://www.example.com/en/ 
http://www.example.com/fr/ 

Ceci est mon courant .htaccess,

# BEGIN WordPress 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 

# Uploaded files 
RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L] 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 
RewriteRule . index.php [L] 
# END WordPress 

Répondre

3

Je ne l'ai pas testé donc je ne suis pas 100% sûr si cela fonctionne, mais cela devrait vous donner quelques idées .

Je vous conseille de jeter un oeil à la documentation de mod-rewrite.

# BEGIN WordPress 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 

# uploaded files 
RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L] 

#languages 
RewriteRule ^/(en|fr)/(.*)$ /$2?lang=$1 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 
RewriteRule . index.php [L] 
# END WordPress 
+0

I'v a obtenu 500 erreur d'erreur de serveur interne :( –

+1

C'est parce qu'il dit 'ReriteRule' au lieu de' RewriteRule' De plus, ces règles vont réécrire toutes les URL http: // example.com/en/'à http: //example.com/? Lang = fr' –

+0

@goreSplatter: merci d'avoir sondé la faute de frappe – RageZ

1
RewriteEngine On 
RewriteBase/

RewriteRule ^en /?lang=en 
RewriteRule ^fr /?lang=fr 
2

Cela va rediriger et préserver la chaîne de requête d'origine:

RewriteCond %{QUERY_STRING} (.+) 
RewriteRule ^([a-z]{2}) /?lang=$1&%1 [L] 

RewriteRule ^([a-z]{2}) /?lang=$1 [L] 
+0

c'est le travail, mais pour une raison quelconque, je suis redirigé vers 404.php à la place de index.php :( –