web-dev-qa-db-fra.com

Collisions d'URL multisites avec wordpress et sous-domaine

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?

3
Kari

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 );
}
1
fuxia