J'ai Joomla 1.5.9 en cours d'exécution avec php 5.2.8, mySQL 5.1.31 sur IIS7 sur une boîte de développement Vista 64. J'ai les deux paramètres SEO "Search Engine Friendly URLs" et "Utiliser Apache mod_rewrite" fonctionnent correctement.Problème lié aux URL de moteur de recherche Joomla sur IIS7
Je suis également en train de créer un site hébergé (avec www.mochahosting.com). Ils utilisent des versions légèrement plus anciennes du même logiciel: Joomla 1.5.5, PHP 5.2.6, mySQL 5.0.4x. Ils utilisent également IIS7, mais s'exécutent sous Windows 32.
Je ne peux pas obtenir l'un des paramètres SEO pour fonctionner sur le site hébergé (J'ai obtenu les paramètres de référencement pour travailler sur ma machine locale, avec à peu près la même configuration). Commençons par "Search Engine Friendly URLs" seulement pour garder les choses simples.
De plus, je n'ai pas encore de nom de domaine, donc j'utilise un alias de fichier hosts pour accéder au site. Je ne m'attends pas à ce que qui que ce soit passe par cette difficulté pour répondre à ma question, alors je vais juste décrire le problème et espérer que je fais un travail assez bon pour que les gens puissent comprendre ce qui se passe. Je vais utiliser http://nodomainyet.com/joomla156_mx comme URL de base (c'est-à-dire, la page d'accueil de joomla) pour les besoins de cette question. Oui, cela implique que Joomla est installé dans un sous-répertoire - je ne suis pas sûr que ce soit un problème ou non (ce n'est pas un problème sur ma boîte de dev).
Sur le problème. Si vous activez "URL de moteur de recherche", http://nodomainyet.com/joomla156_mx génère un 404 ("Composant non trouvé"). Dans la page d'erreur 404, il y a un lien qui va à http://nodomainyet.com/joomla156_mx/index.php - et ce lien fonctionne. Si j'éteins "Search Engine Friendly URLs" puis à la fois http://nodomainyet.com/joomla156_mx et http://nodomainyet.com/joomla156_mx/index.php travail. Il semble donc que tourner sur « Search Engine Friendly URLs » provoque la « redirection automatique » de http://nodomainyet.com/joomla156_mx-http://nodomainyet.com/joomla156_mx/index.php cesser de travailler ...
Maintenant, si je vais à http://nodomainyet.com/joomla156_mx/index.php et de là naviguer vers les différents liens du menu principal (J'utilise seulement le site joomla par défaut qui est installé avec une nouvelle instance de Joomla), alors tout fonctionne bien. Il va juste à http://nodomainyet.com/joomla156_mx qui ne fonctionne pas. Il est à noter que le lien "home" qui se trouve dans le menu principal va par défaut à http://nodomainyet.com/joomla156_mx.
J'ai comparé la sortie de phpinfo sur l'hôte à celle de ma boîte de dev et ne pouvait pas voir les différences qui provoqueraient cette question ...
Activation du second paramètre SEO - « Utilisation Apache mod_rewrite "- ne résout pas le problème (on pourrait le penser, puisque le but de ce paramètre est de se débarrasser de index.php dans l'URL). Les "Search Engine Friendly URLs" semblent généralement assez triviales pour se mettre au travail - il ne nécessite pas de règles web.config et de réécriture ... Je ne suis pas sûr de ce qui pourrait causer des problèmes.
Mise à jour - 2009-03-03
Je pensais que c'était une mauvaise idée de ne tourner le premier paramètre de SEO ("Search Engine Friendly URLs") de ("Utiliser Apache mod_rewrite ") (même si je peux simplement activer" Search Engine Friendly URLs "par lui-même sur ma machine locale et cela fonctionne bien). J'ai donc essayé quelques expériences supplémentaires
Je pensais que le problème était peut-être que la réécriture d'URL n'était pas correctement configurée dans IIS7 sur l'hôte. J'ai fait le (premier) fichier de test décrit dans http://learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-module et cela a fonctionné - ce qui signifie que la réécriture d'URL fonctionne.
Ensuite, je pensais que peut-être le problème est que les règles de réécriture que l'on voit partout pour Joomla sur IIS7 doivent être réécrites pour prendre en compte le sous-répertoire. Comme je l'ai dit plus haut, les paramètres SEO fonctionnent bien sur ma machine locale. Joomla est également installé dans un sous-répertoire, et tout fonctionne correctement. Néanmoins, j'ai essayé de modifier la règle de réécriture de
<rewrite>
<rules>
<rule name="Imported Rule 1" enabled="true">
<match url="(.*)" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" pattern="" ignoreCase="false" />
<add input="{SCRIPT_NAME}" negate="true" pattern="^/index.php" ignoreCase="false" />
<add input="{SCRIPT_NAME}" pattern="(/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
à
<rewrite>
<rules>
<rule name="Imported Rule 1" enabled="true">
<match url="(.*)" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" pattern="" ignoreCase="false" />
<add input="{SCRIPT_NAME}" negate="true" pattern="^/joomla156mx/index.php" ignoreCase="false" />
<add input="{SCRIPT_NAME}" pattern="(/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$" />
</conditions>
<action type="Rewrite" url="joomla156mx/index.php" />
</rule>
</rules>
</rewrite>
(à savoir préfixer le nom du répertoire à la condition et l'action). Cela n'a pas fait de différence. Maintenant, je suis complètement nouveau pour réécrire les règles, donc j'ai peut-être foiré quelque chose. Je suppose que je trouve un peu suspect qu'il n'y ait pas de règle de redirection; Cela signifie que si je copie & coller une URL «réécrite», est-ce que quelque chose ne doit pas dire au serveur qu'il s'agit d'une URL inventée, et devrait être redirigé vers une URL réelle? Mais, encore une fois, tout cela fonctionne bien sur ma boîte locale avec des règles de réécriture vieilles, donc je peux aboyer sur le mauvais arbre.
Merci pour l'aide!
Merci pour la réponse. Cependant, j'ai déjà suivi des instructions similaires sur mon ordinateur local et sur le site hébergé. cela fonctionne sur ma machine locale mais pas sur le site hébergé ... J'ai donc besoin d'un peu plus de détails sur la façon de diagnostiquer ceci sur le site hébergé. – Jimmy