web-dev-qa-db-fra.com

Besoin d'aide avec une règle de réécriture simple (cela ne devrait-il pas être facile?)

Tout ce dont j'ai besoin est une réécriture qui changera example.com/anyphrase en example.com.

Voici ce que j'utilise:

RewriteCond %{HTTP_Host} ^example\.com
RewriteCond %{SCRIPT_FILENAME} !wp-admin
RewriteCond %{SCRIPT_FILENAME} !activity
RewriteCond %{SCRIPT_FILENAME} !members
RewriteCond %{SCRIPT_FILENAME} !groups
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php [L]

Remarques:
J'ai ajouté ce qui précède en haut de mon fichier .htaccess (dans WP racine). J'utilise WordPress 3.1.3 multisite (sous-domaines), WP plug-in MU Domain Mapping et buddypress on example.com. Le nom de domaine mappé est example.com et non le sous-domaine réel.

Je supposais que ma règle de réécriture chargerait example.com/index.php, ce qui chargerait la page d'accueil du site WordPress. Cependant, je reçois une réponse "page introuvable" affichée dans ma peau buddypress (et non une page 404 avec une erreur complète).

1
user568428

je ne suis pas sûr que ce soit un problème pour vous ou pas, mais si c'est le cas, j'ai remarqué quelques problèmes. Tout d'abord, votre domaine n'était pas configuré pour être sensible à la casse [NC]. Deuxièmement, votre regex RewriteRule a une classe de caractères se terminant par un tiret. Cela doit commencer par un tiret. Troisièmement, votre règle envoie la requête à index.php, ce qui signifie que index.php doit savoir comment gérer la requête. Si vous voulez rediriger, c'est différent. Donnez-moi un tourbillon et laissez-moi savoir comment vous vous en sortez:

RewriteCond %{HTTP_Host} ^domainXYZ\.com [NC]
RewriteCond %{REQUEST_FILENAME} !wp-admin
RewriteCond %{REQUEST_FILENAME} !activity
RewriteCond %{REQUEST_FILENAME} !members
RewriteCond %{REQUEST_FILENAME} !groups
RewriteRule ^([^/]+)/?$ http://domainXYZ\.com [L,R=301]

A bientôt ~

1
Matthew Boynes