web-dev-qa-db-fra.com

WP ignore l'URL réécrite .htaccess

J'ai deux domaines desservis par le même WP install. modifier: pas sur plusieurs sites

Dans wp-config.php j'ai define('WP_SITEURL', "http://$hostname/wordpress"); etc.

Les deux domaines auront un contenu similaire, mais nous voulons pouvoir les avoir sur le même chemin, par exemple. domain1.com/about-us et domain2.com/about-us.

J'ai donc mis en place ces deux pages \dom1\about-us et \dom2\about-us, et dans mon .htaccess j'ai:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_Host} dom1 [NC]
RewriteRule ^((about\-us|etc).*) /dom1/$1 [NC,QSA,L]

RewriteCond %{HTTP_Host} dom2 [NC]
RewriteRule ^((about\-us|etc).*) /dom2/$1 [NC,QSA,L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Je reçois (edit: WordPress) 404 pages d'erreur pour les URL ci-dessus. J'ai ajouté print_r($_SERVER); dans mon modèle 404 et j'obtiens ce qui suit (sortie simplifiée).

Array
(
[REQUEST_URI] => /about-us/
[REDIRECT_REDIRECT_STATUS] => 200
[REDIRECT_STATUS] => 200
[HTTP_Host] => dom1.dev
[SERVER_NAME] => dom1.dev
[REDIRECT_URL] => /dom1/about-us/
[QUERY_STRING] => 
[SCRIPT_NAME] => /index.php
[PHP_SELF] => /index.php
...
)

Cela ne signifie-t-il pas que la réécriture a fonctionné, mais WP ne l'utilise pas?

Merci d'avance.

1
jezmck
RewriteCond %{HTTP_Host} dom1 [NC]
RewriteRule ^((about\-us|etc).*) /dom1/$1 [NC,QSA,L]

Votre règle de réécriture inclut le paramètre L, ce qui l’arrête de traiter les réécritures. Donc, les règles de WordPress pour rediriger vers index.php n'entreront probablement jamais en vigueur. Ce qui signifie que WordPress n'est même pas exécuté ici. Le serveur 404 provient probablement du serveur Web, affirmant que le fichier situé dans/dom1/about-us n'existe pas.

1
Otto