web-dev-qa-db-fra.com

Mon site Web continue à être redirigé vers le compte "index.php" sur l'application Instagram.

Mon code htaccess permet à example.com/username de rediriger vers n'importe quel nom d'utilisateur sur l'application Instagram. Mais lorsque j'ouvre example.com, il est redirigé vers un compte Instagram appelé index.php. Comment puis-je le réparer? Voici mon htaccess

RedirectMatch 302 /(.+) instagram://user?username=$1
2
Bangladesh 71

Ceci est probablement dû au fait que mod_dir a émis une sous-demande pour l'index de répertoire (c'est-à-dire. index.php).

Vous pouvez essayer d'ajouter un préfixe négatif à l'expression régulière pour exclure spécifiquement les demandes de index.php. Par exemple:

RedirectMatch 302 /(?!index\.php)(.+) instagram://user?username=$1

PDATE: Si vous rencontrez maintenant un problème avec index.html (un autre index de répertoire possible), vous pouvez également l'exclure:

RedirectMatch 302 /(?!index\.php|index\.html)(.+) instagram://user?username=$1

Ou désactivez complètement les index de répertoire et redirigez tout (changez .+ en .*). Par exemple:

DirectoryIndex disabled
RedirectMatch 302 /(.*) instagram://user?username=$1

Cependant, ceci sera redirigé même si aucun nom d'utilisateur n'est donné.


Pour éviter les conflits avec votre site existant, il serait probablement préférable de rendre cette URL "instagram" unique, afin d'éviter de remplacer vos URL existantes. Par exemple: example.com/instagram/<username>. Vous pouvez ensuite simplifier la directive ci-dessus pour:

RedirectMatch 302 /instagram/(.+) instagram://user?username=$1

Ou, vous pouvez même le réduire à quelque chose comme example.com/i/<username> - si cela reste unique.

RedirectMatch 302 /i/(.+) instagram://user?username=$1
2
MrWhite