Vous n'êtes pas identifié(e).
13 février 2024 Sortie de Dotclear 2.29
Pages : 1
Bonjour !
Je souhaite changer la méthode de lecture de l'URL (du mode QUERY STRING au mode PATH INFO) dans Dotclear sans casser mes liens existants. Pour bien faire, comme j'ai pu le lire dans la documentation, il est possible de rediriger les pages avec les codes suivants dans un fichier .htaccess
# Rewrite old QUERY_STRING urls
RewriteCond %{QUERY_STRING} !^$
RewriteRule ^index.php$ %{QUERY_STRING}? [R=301,L]
# Get nice URLs with DotClear 2
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php/$1
RewriteRule ^index.php$ index.php/ [L]
Manque de bol, chez mon hébergeur (hébergement Windows de IKOULA) les règles de réécriture se font en XML dans un fichier web.config de mon site web comme précisé ici.
Pourriez vous donc m'aider à convertir les règles ci-dessus en langage XML pour les modules d'URL rewriting de IIS 7 ?
Je ne sais pas comment procéder.
Gilles
Hors ligne
Hello,
Je tente un essai :
<rewrite>
<rules>
<rule name="Rewrite old QUERY_STRING urls">
<match url="^index.php$" />
<conditions>
<add input="{QUERY_STRING}" pattern="^$" negate="true" />
</conditions>
<action type="Rewrite" url="%{QUERY_STRING}?" />
</rule>
<rule name="Get nice URLs with Dotclear 2">
<match url="(.*)" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R.1}" />
</rule>
<rule name="Get nice Index URLs with Dotclear 2">
<match url="^index.php$" />
<action type="Rewrite" url="index.php/" />
</rule>
</rules>
</rewrite>
Hors ligne
Hola,
Merci annso de te pencher dessus!
Ton premier essai a abouti à : 500 - Internal server error en actualisant ma page principale et les autres par la même occasion.
Je me suis contenté de passer du mode QUERY STRING au mode PATH INFO, puis de créer un fichier web.config à la racine du site, et d'y ajouter les règles XML.
J'essaie de trouver une erreur dans ta transposition du code en comparant les deux, et je ne vois pas d'erreurs flagrantes.... Voilà une remarque utile puisque je ne maitrise ni le langage XML, ni l'autre d'ailleurs. ;-)
Je vais me documenter un peu sur les syntaxes.
Gilles
Hors ligne
Je ne suis pas convaincue par ma traduction de la première règle (Rewrite old QUERY_STRING urls). Tu peux peut être déjà essayer sans ?
Sinon, il faudrait peut être mieux demander à ton hébergeur qui doit avoir l'habitude d'écrire de telles règles.
Hors ligne
Par ailleurs, peut-être a tu accès à ce module d'import de règles Apache : http://learn.iis.net/page.aspx/470/impo … ite-rules/
Hors ligne
Je n'ai pas accès à ce module d'import donc c'était l'occasion de tester le support technique de mon hébergeur comme tu me l'as conseillé.
Rapide les bougres. Ils ont passé les codes apache dans la moulinette de l'utilitaire URL Rewrite Module et, ils m'ont envoyé ceci :
<rewrite>
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^index.php$" ignoreCase="false" />
<conditions>
<!--# Rewrite old QUERY_STRING urls-->
<add input="{QUERY_STRING}" pattern="^$" ignoreCase="false" negate="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="{QUERY_STRING}?" appendQueryString="false" />
</rule>
<rule name="Imported Rule 2">
<match url="(.*)" ignoreCase="false" />
<conditions>
<!--# Get nice URLs with DotClear 2-->
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" />
</rule>
<rule name="Imported Rule 3" stopProcessing="true">
<match url="^index.php$" ignoreCase="false" />
<action type="Rewrite" url="index.php/" />
</rule>
</rules>
</rewrite>
J'ai testé. Plus d'erreur 500.
Mais... les références (externes ou internes) aux anciens liens retombent tous sur la page d'accueil de mon site au lieu de diriger vers les nouvelles adresses PATH_INFO.
Je remarque que je me trouve confronté au même souci qui est décrit dans ce topic à la différence que je veux utiliser la méthode PATH_INFO.
J'essaye de contacter par mail Mattkltz qui s'était proposé (il y a un moment) dans ce topic de créer une page dans la documentation à ce sujet : http://fr.dotclear.org/documentation/2. … nstall/iis
Quelle aventure trépidante..!
Gilles
Hors ligne
Pages : 1
Vous n'êtes pas identifié(e).