J'ai un WordPress multisite installé sur un serveur utilisant un domaine, site.com et j'ai une configuration de sous-domaine dans WordPress; les sous-sites sont donc à sub1.site.com , sub2.site.com etc.
En plus de cela, le site principal a d'autres services dans des sous-dossiers qui ne sont pas liés à WordPress, tels que site.com/something
.
Tout fonctionne correctement, sauf que lorsqu'un client d'un sous-site utilise des permaliens par nom de poste et utilise le même titre que l'un des sous-dossiers du site principal, il se rend dans le sous-dossier du site principal; par exemple sub1.site.com/something
va au même endroit que site.com/something
.
Est-ce que je peux faire quelque chose (en éditant .htaccess
ou httpd.conf
?
Ou devrais-je simplement déplacer WordPress vers son sous-dossier du site principal (site.com/wordpress
) pour éviter ces collisions d'URL?
Vous pouvez simplement empêcher les slugs de correspondre aux répertoires existants. Il existe deux filtres pour cela.
Exemple, non testé:
add_filter(
'wp_unique_post_slug_is_bad_hierarchical_slug',
'prevent_directory_slugs',
10,
2
);
add_filter(
'wp_unique_post_slug_is_bad_flat_slug',
'prevent_directory_slugs',
10,
2
);
function prevent_directory_slugs( $bool, $slug )
{
return is_dir( ABSPATH . '/' . $slug );
}